从坐标系创建点

2024-09-29 19:24:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个坐标表看起来像这样

myCoordinates
> [(2, -6), (21, 19)]

我想把它们转换成shapely geometry对象,这样我就可以用它们进行一些计算:

^{pr2}$

不过,这只给了我一个(!)几何体对象。在

但当我这么做的时候

circles = [Point(random.random(), random.random()).buffer(random.random() * 0.1) for i in range(3)]

我得到了三个几何对象。在

print circles
> [<shapely.geometry.polygon.Polygon object at 0x1043f6890>, <shapely.geometry.polygon.Polygon object at 0x10442f8d0>, <shapely.geometry.polygon.Polygon object at 0x10442f910>]

我做错什么了?为什么只将一个点转换为几何体对象而不是列表中的两个?在


Tags: 对象inforobjectbufferrandomatpoint
2条回答

以下是三点:

c = [Point(i[0], i[1]) for i in myCoords]

它遵循与circles相同的列表理解:

^{pr2}$

前面所做的是将该点赋给变量c,因此在for循环的末尾,列表中只有一个点:

for i in myCoordinates:
    c = [Point(i[0], i[1])] # here c is overwritten in each iteration

在循环的每次迭代中都要重写变量。您需要生成c一个列表,然后附加到它:

from shapely.geometry import Point
c = []
for i in myCoordinates:
    c.append([Point(i[0], i[1])])

print c

或者,你也可以用列表理解法在一行中完成:

^{pr2}$

相关问题 更多 >

    热门问题