コード例 #1
0
JNIEXPORT jint JNICALL Java_es_gva_cit_jogr_OGRDataSource_deleteLayerNat
  (JNIEnv *env, jobject obj, jlong cPtr, jint layer){
  	  	
  	OGRDataSource 	*ds = (OGRDataSource *) 0 ;
  	int 			ogrerr;
  	
  	ds = *(OGRDataSource **)&cPtr;
  	if(ds!=NULL){
  		ogrerr = ds->DeleteLayer(layer);
  	}
  	return ogrerr;
  }
コード例 #2
0
OGRErr      OGRDataSourceWithTransaction::DeleteLayer(int iIndex)
{
    if( !m_poBaseDataSource ) return OGRERR_FAILURE;
    OGRLayer* poLayer = GetLayer(iIndex);
    CPLString osName;
    if( poLayer )
        osName = poLayer->GetName();
    OGRErr eErr = m_poBaseDataSource->DeleteLayer(iIndex);
    if( eErr == OGRERR_NONE && osName.size())
    {
        std::map<CPLString, OGRLayerWithTransaction*>::iterator oIter = m_oMapLayers.find(osName);
        if(oIter != m_oMapLayers.end())
        {
            delete oIter->second;
            m_oSetLayers.erase(oIter->second);
            m_oMapLayers.erase(oIter);
        }
    }
    return eErr;
}