如何在Shapely中提取没有数组的几何对象的坐标

Iza*_*ert 4 python arrays shapely

如何仅从数组中提取值而不使用文本“array”和“typecode”?

数组是shapely.linestring.centroid.xy:

a = LineString.centroid.xy
print(a)
>> (array('d', [-1.72937...45182697]), array('d', [2.144161...64685937]))
print(a[0])
>> array('d', [-1.7293720645182697])
Run Code Online (Sandbox Code Playgroud)

我只需要作为-1.7293...浮点数而不是整个数组业务。

Geo*_*rgy 6

事实上,可以通过和属性Point访问的各个坐标。由于返回 a ,您可以简单地执行以下操作:xyobject.centroidPoint

>>> from shapely.geometry import LineString
>>> line = LineString([(0, 0), (2, 1)])
>>> line.centroid.x
1.0
>>> line.centroid.y
0.5
Run Code Online (Sandbox Code Playgroud)

另外,诸如Point、LinearRing和 之类的几何对象LineString有一个coords属性,该属性返回一个特殊CoordinateSequence对象,您可以从中获取单独的坐标:

>>> line.coords
<shapely.coords.CoordinateSequence at 0x7f60e1556390>
>>> list(line.coords)
[(0.0, 0.0), (2.0, 1.0)]
>>> line.centroid.coords[0]
(1.0, 0.5)
Run Code Online (Sandbox Code Playgroud)