1.流程如下:
2.用到的主要的函数:
(1)datasource=ogr.Open(fn,False)
打开矢量文件,其中False是用于只读,该函数返回一个 DataSource类的对象。
(2)layer_num=datasource.GetLayerCount()
该函数是DataSource类的一个成员函数,用于获取所打开的矢量文件中的图层的数目。
(3)layer=datasource.GetLayerByIndex(i)
该函数是DataSource类的一个成员函数,用于获取第i个图层,返回的是一个Layer类对象。
(4)spatial_ref=layer.GetSpatialRef()
该函数是Layer类的一个成员函数,用于获取图层的空间参考信息,返回的是一个SpatialReference类对象。
(5)spatial_data=feature_element.geometry()
该函数是Feature类的成员函数,获取当前要素的空间信息。
(6)x=spatial_data.GetX()、y=spatial_data.GetY()
获取点要素的x坐标以及y坐标。
(7)year=feature_element.GetField(“截止年”)
该函数是Feature类的成员函数,用以根据字段名获取字段值。
3.代码如下:
#coding=utf-8
from osgeo import gdal,osr,ogr
#打开文件
fn=r"F:\win8\23\aaa\chn_stations.shp"
datasource=ogr.Open(fn,False)
#查看矢量图层的数目,shp文件只有一个图层
layer_num=datasource.GetLayerCount()
#获取矢量图层
layer=datasource.GetLayerByIndex(0) #矢量的索