shapefile中的图层是什么

时间:2016-11-19 08:28:22

标签: python gis

我开始了解GIS数据。我有兴趣使用Python查看这些数据。我现在正在学习shapefile。我正在学习osgeo / ogr。我遇到了#remove the .php extention for root dir only RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+)\.php RewriteRule ^/?(.*)\.php$ /$1 [L,R=301] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*?)/?$ $1.php 方法。现在我无法理解shapefile中的图层。是否有必要将某个要素添加到图层?

当我尝试按如下方式创建多个图层时:

GetLayer()

我得到的是与shapeData = driver.CreateDataSource('customer_points.shp') layer = shapeData.CreateLayer('customs', spatialReference, osgeo.ogr.wkbPoint) layer = shapeData.CreateLayer('customs1', spatialReference, osgeo.ogr.wkbPoint) 相对应的shapefile,只有一层--- customer_points有效,但GetLayer(0)返回GetLayer(1) 我也得到与None对应的shapefile 所以我能够通过从第一个shapefile中读取第二层来检索添加到customs1的功能,但是从第二个shapefile中读取第一层

1 个答案:

答案 0 :(得分:1)

ESRI shapefile格式确实不支持将功能分组到单独的层中。

然而,OGR以osgeo.ogr.DataSource的形式提供了矢量数据的抽象源,假设这些特征被分组为一个或多个层。图层从0开始编号,osgeo.ogr.DataSource.GetLayer(self, iLayer=0)函数提供了一个方便的默认设置,用于从第一层提取数据,恰好是数据源为shapefile时唯一的图层。

如果要将矢量数据保存到shapefile中,根据OGR模型,您必须创建一个osgeo.ogr.DataSource.CreateLayer(self, *args, **kwargs)的图层,并为此图层对象添加要素。