将点几何转换为列表
我有一个脚本,它创建了一个点的几何形状。请问我怎么才能把这个点的几何形状转换成一个只包含坐标的列表,让它看起来像这样 [258432.79138201929, 1001957.4394514663]
?
>>> import ogr
>>> driver = ogr.GetDriverByName('ESRI Shapefile')
>>> pointshp = driver.Open('U:/My Documents/Tool/shp/point.shp', 0)
>>> pointlyr = pointshp.GetLayer()
>>> point_geom = point.GetGeometryRef()
>>> print point_geom
POINT (258432.79138201929 1001957.4394514663)
2 个回答
0
假设 point_geom 的内容就是 "POINT (258432.79138201929 1001957.4394514663)"
(也就是说它是一个字符串)
你可以这样做:
map(float,point_geom[7:-1].split(' '))
point_geom[7:-1]
这个操作会得到 "258432.79138201929 1001957.4394514663"
,也就是把字符串中的 "POINT (" 和 ")" 去掉了。
接着,point_geom[7:-1].split(' ')
这个操作会把上面的结果分开,得到 ['258432.79138201929', '1001957.4394514663']
,也就是把两个数字分成了一个列表。
最后,map(float,point_geom[7:-1].split(' '))
这个操作会把列表里的字符串转换成浮点数,也就是把它们变成可以进行数学运算的数字。
3
通常,一个点对象有三个坐标,分别是x、y和z。
[point_geom.x, point_geom.y]