浏览代码

vlib: partly revert https://trac.osgeo.org/grass/changeset/51126, don't use
OGR_L_GetName()/OGR_L_GetGeomType() (introduced in GDAL 1.8.0)


git-svn-id: https://svn.osgeo.org/grass/grass/trunk@51151 15284696-431f-4ddb-bdfa-cd5b030d7da7

Martin Landa 13 年之前
父节点
当前提交
e80dfa9975
共有 1 个文件被更改,包括 8 次插入4 次删除
  1. 8 4
      lib/vector/Vlib/open_ogr.c

+ 8 - 4
lib/vector/Vlib/open_ogr.c

@@ -54,6 +54,7 @@ int V1_open_old_ogr(struct Map_info *Map, int update)
     
     OGRDataSourceH Ogr_ds;
     OGRLayerH Ogr_layer;
+    OGRFeatureDefnH Ogr_featuredefn;
     OGRwkbGeometryType Ogr_geom_type;
     
     Ogr_layer = NULL;
@@ -88,9 +89,10 @@ int V1_open_old_ogr(struct Map_info *Map, int update)
     G_debug(2, "%d layers found in data source", nLayers);
 
     for (i = 0; i < nLayers; i++) {
-	Ogr_layer = OGR_DS_GetLayer(Ogr_ds, i);
-	if (strcmp(OGR_L_GetName(Ogr_layer), ogr_info->layer_name) == 0) {
-	    Ogr_geom_type = OGR_L_GetGeomType(Ogr_layer);
+	Ogr_layer = OGR_DS_GetLayer(Ogr_ds, i);	
+	Ogr_featuredefn = OGR_L_GetLayerDefn(Ogr_layer);
+	if (strcmp(OGR_FD_GetName(Ogr_featuredefn), ogr_info->layer_name) == 0) {
+	    Ogr_geom_type = OGR_FD_GetGeomType(Ogr_featuredefn);
 	    layer = i;
 	    break;
 	}
@@ -178,6 +180,7 @@ int V1_open_new_ogr(struct Map_info *Map, const char *name, int with_z)
     OGRSFDriverH    Ogr_driver;
     OGRDataSourceH  Ogr_ds;
     OGRLayerH       Ogr_layer;
+    OGRFeatureDefnH Ogr_featuredefn; 
     
     OGRRegisterAll();
     
@@ -203,7 +206,8 @@ int V1_open_new_ogr(struct Map_info *Map, const char *name, int with_z)
     nlayers = OGR_DS_GetLayerCount(Ogr_ds);
     for (i = 0; i < nlayers; i++) {
       	Ogr_layer = OGR_DS_GetLayer(Ogr_ds, i);
-	if (strcmp(OGR_L_GetName(Ogr_layer), name) == 0) {	
+	Ogr_featuredefn = OGR_L_GetLayerDefn(Ogr_layer);
+	if (strcmp(OGR_FD_GetName(Ogr_featuredefn), name) == 0) {	
 	    if (G_get_overwrite()) {
 		G_warning(_("OGR layer <%s> already exists and will be overwritten"),
 			  ogr_info->layer_name);