我正在使用python和库from geopy.geocoders import Nominatim
,我正在解析一些Lat / Long坐标,我想得到坐标的县。
这就是我正在做的事情:
def getCounty(data):
try:
#print(data["geo"]["coordinates"]) # Getting Lat/Long coordinates
geo_data = data["geo"]["coordinates"]
geo_detail = geolocator.reverse(geo_data)
except TypeError,e:
geo_data = "null"
geo_detail = "N/A"
ctr = 0
i = 0
j = 0
if(geo_detail != "N/A"):
while(geo_detail[i]!= ',' and ctr == 4):
j=j+1
if(ctr == 3):
i=j+1
if(geo_detail[j] == ','):
ctr = ctr+1
county = geo_detail
else:
county = "No Location Provided"
return county[i:j]
由于某种原因,返回()
当我这样做时:return county
,它会返回这些坐标中的所有信息。
好像我无法获得变量county
我如何获得县属性或我可以通过其他方式获得县?
答案 0 :(得分:1)
在逗号上拆分输出字符串,并获取第四个索引(县):
return geo_detail.address.split(",")[3] # Milwaukee County
答案 1 :(得分:0)
我只是想补充一点,这并不总是适用于所有地址。一些返回信息不包括街道编号(即使在查找中提供了街道编号),然后它将返回状态。
尝试:
[x.strip() for x in location.address.split(',') if 'County' in x ][0]
这将始终返回县(如果存在)。
答案 2 :(得分:0)
由于位置的格式不同,您应该使用:
location = geolocator.reverse("47.173056,-114.553611")
line = location.address
line = line.replace(',','')
words = line.lower().split()
print(words)
ind = (words.index('county')-1)
print(words[ind])