将点几何转换为列表

1 投票
2 回答
3594 浏览
提问于 2025-04-17 18:13

我有一个脚本,它创建了一个点的几何形状。请问我怎么才能把这个点的几何形状转换成一个只包含坐标的列表,让它看起来像这样 [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]

撰写回答