gpt4 book ai didi

python-3.x - 如何有效地将一组 geohashes 转换为多边形?

转载 作者:行者123 更新时间:2023-12-04 01:39:15 28 4
gpt4 key购买 nike

我一直在寻找一种在 Python 中将一组 geohashes 转换为多边形的有效方法,此外有时我会获得多多边形而不是多边形,这可能是因为缺少一些内部 geohashes。我目前正在使用 python-geohashshapely我的方法包括以下步骤:

  1. 我通过提取角坐标将每个 geohash 转换为多边形。

    def to_polygon(geohash):
    box = Geohash.bbox(geohash)
    return Polygon([(box['e'], box['n']), (box['w'], box['n']), (box['w'], box['s']), (box['e'], box['s'])])
  2. 然后我映射 geohashes 的iterable 执行前面解释的转换。

    polygons = [to_polygon(geohash) for geohash in geohashes]
  3. 最后,我使用多边形的方法 union 将所有这些多边形合并为一个多边形。 .

    polygon = functools.reduce(lambda a, b: a.union(b), polygons)

如果这组 geohashes 大约有数千,则可能需要几分钟。

最佳答案

我创建了一个库 (polygon-geohasher) 来实现这一点:

from polygon_geohasher.polygon_geohasher import geohashes_to_polygon

geohashes = ['9bc1db2',
'9bc1db6',
'9bc1db1',
'9bc1db0',
'9bc1db4',
'9bc1db9',
'9bc1db8',
'9bc1dbd',
'9bc1db3']
polygon = geohashes_to_polygon(geohashes)
print(polygon)
# POLYGON ((-99.71878051757812 4.483795166015625, -99.71878051757812 4.482421875, -99.72015380859375 4.482421875, -99.72152709960938 4.482421875, -99.722900390625 4.482421875, -99.722900390625 4.483795166015625, -99.722900390625 4.48516845703125, -99.722900390625 4.486541748046875, -99.72152709960938 4.486541748046875, -99.72015380859375 4.486541748046875, -99.71878051757812 4.486541748046875, -99.71878051757812 4.48516845703125, -99.71878051757812 4.483795166015625))

关于python-3.x - 如何有效地将一组 geohashes 转换为多边形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48037908/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com