【问题标题】:Obtaining the center of a WKT polygon获取 WKT 多边形的中心
【发布时间】:2017-09-24 15:26:31
【问题描述】:

我正在使用 pandas,我获得的数据集有一个 WKT 格式的位置列。例如:

hospital.get_value(1,'WKT')

POLYGON ((-58.4932 -34.5810,-58.4925 -34.5815,-58.4924 -34.5817))

此示例中的点数更多且精度更高,但出于说明目的,我将其缩短了。另外,我不知道它是 WKT 还是字符串。如何获得该多边形的中心,以便将其用作坐标?提前致谢。

【问题讨论】:

  • 它不会是确切的中心,但如果您只是将经度平均在一起并将纬度平均在一起,它可能会在多边形内。否则你会想要应用质心公式,虽然与地球的曲率相比,建筑物的相对论很小,但天真地在经度和纬度空间中应用这样的公式可能会引入一些错误,为了避免这种情况,你可能想要转换为笛卡尔坐标坐标,应用质心公式,然后转换回经度和纬度(忽略径向分量)。

标签: python pandas polygon shapely wkt


【解决方案1】:

你几乎有 WKT,除了多边形的线性环需要闭合。

Shapely 有一个.centroid 属性来获取中心点:

from shapely import wkt
g = wkt.loads(
    'POLYGON ((-58.4932 -34.5810,-58.4925 -34.5815,-58.4924 -34.5817,-58.4932 -34.5810))')
print(g.centroid)  # POINT (-58.49270000000001 -34.5814)
print(g.centroid.coords[0])  # (-58.492700000000006, -34.581399999999995)

【讨论】:

    猜你喜欢
    • 2016-05-15
    • 2014-01-10
    • 1970-01-01
    • 2013-11-29
    • 1970-01-01
    • 2021-12-28
    • 1970-01-01
    • 2014-10-06
    • 2020-12-26
    相关资源
    最近更新 更多