我正在尝试使用Python的geohash模块获取geohash的边界框(x,y坐标)。我能够成功读取地质哈希并获取其质心,但是当我尝试使用geohash.bbox()
方法时,它会失败。这是代码:
#import modules
import Geohash
import csv
dataArray = []
with open('C:\Users\Desktop\data.csv') as csvfile:
readCSV = csv.reader(csvfile, delimiter=',')
for row in readCSV:
geoHash = row[0] # this is the geohash identifier
trips = row[1]
share_of_trips = row[2]
time_ID = row[3]
perc_trips = row[4]
geoStr = str(geoHash)
latLong = Geohash.decode_exactly(geoStr)
# Get Bounding Box
boundingBox = Geohash.bbox(geoStr)
print boundingBox
我能够成功打印经纬度对,但无法获得边界框。该文档说:
我得到的错误是:
AttributeError: 'module' object has no attribute 'bbox'
当我使用geohash
而不是Geohash
时,它说geohash is not defined.
有什么想法吗?先感谢您。我已经阅读了文档:
geohash.bbox(hashcode)geohash哈希码的边界框。此方法返回一个键为“ s”,“ e”,“ w”和“ n”的字典,分别表示南,东,西和北。
>>> geohash.bbox('ezs42')
{'s': 42.5830078125, 'e': -5.5810546875, 'w': -5.625, 'n': 42.626953125}
答案 0 :(得分:0)
但是当我尝试使用
geohash.bbox()
方法时,它会失败
您的代码中有Geohash.bbox()
,这是不一样的。
当我使用
geohash
而不是Geohash
时,它说的是geohash is not defined
。
那是因为您有import Geohash
。也许您需要将其更改为import geohash
。
我在Google搜索“ python geohash”时发现了至少两个库。其中一个的文档显示您需要执行import Geohash
,但是此库似乎没有bbox()
函数。第二个库的文档具有bbox()
函数,但需要import geohash
。建议您找出正在使用的库,并仔细查看该库的文档 ,以确定正确的用法。
答案 1 :(得分:-1)
请尝试使用https://github.com/bashhike/libgeohash。看起来比您提到的库还要好。
以下是一些示例:
import libgeohash as gh
shapleypolygon = gh.geohash_to_polygon(["u1q"])
bounds = shapleypolygon.bounds
print(bounds)
输出:
(8.4375, 52.03125, 9.84375, 53.4375)
或
import libgeohash as gh
bbox = gh.bbox("u1q")
print(bbox)
输出:
{'n': 53.4375, 's': 52.03125, 'w': 8.4375, 'e': 9.84375}
我发现使用geohash_to_polygon
方法将geohash转换为形状多边形非常有用。