在Python中使用OGR时,先要导入OGR库,如果需要对中文的支持,还需要导入GDAL库,具体代码如下。Python创建的shp结果如图1所示。
图1 Python创建矢量结果#-*- coding: cp936 -*-
try:
from osgeo import gdal
from osgeo import ogr
exceptImportError:
import gdal
import ogr
1.读取矢量#-*- coding: cp936 -*-
try:
from osgeo import gdal
from osgeo import ogr
exceptImportError:
import gdal
import ogr
defReadVectorFile():
# 为了支持中文路径,请添加下面这句代码
gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8","NO")
# 为了使属性表字段支持中文,请添加下面这句
gdal.SetConfigOption("SHAPE_ENCODING","")
strVectorFile ="E:\\Datum\\GDALCsTest\\Debug\\beijing.shp"
# 注册所有的驱动
ogr.RegisterAll()
#打开数据
ds = ogr.Open(strVectorFile, 0)
if ds == None:
print("打开文件【%s】失败!", strVectorFile)
return
print("打开文件【%s】成功!", strVectorFile)
# 获取该数据源中的图层个数,一般shp数据图层只有一个,如果是mdb、dxf等图层就会有多个
iLayerCount = ds.GetLayerCount()
# 获取第一个图层
oLayer = ds.GetLayerByIndex(0)
if oLayer == None:
print("获取第%d个图层失败!\n", 0)
return
# 对图层进行初始化,如果对图层进行了过滤操作,执行这句后,之前的过滤全部清空