Geocoding non-addresses: Geopy
利用地缘学对新西兰的酒类销售点进行地理编码。
我遇到的问题是,有些地方没有街道地址,而是在谷歌地图中。例如,堵塞:
1 | Furneaux Lodge, Endeavour Inlet, Queen Charlotte Sound, Marlborough 7250 |
通过浏览器进入谷歌地图
1 2 3 4 5 6 7 8 9 | def GeoCode(address): g=geocoders.Google(domain="maps.google.co.nz") geoloc = g.geocode(address, exactly_one=False) place, (lat, lng) = geoloc[0] GeoOut = [] GeoOut.extend([place, lat, lng]) return GeoOut GeoCode("Furneaux Lodge, Endeavour Inlet, Queen Charlotte Sound, Marlboroguh 7250") |
同时,我注意到"埃菲尔铁塔"运行良好。有没有办法解决这个问题,有人能解释一下埃菲尔铁塔和谷歌"地点"内的富诺旅馆之间的区别?
也许这是谷歌地图API的限制。然而,地名似乎知道
1 2 3 4 5 | >>> from geopy import geocoders >>> gn = geocoders.GeoNames() >>> place, (lat, lng) = gn.geocode('Furneaux Lodge') >>> print('{}: {:.5f}, {:.5f}'.format(place, lat, lng)) Furneaux Lodge, F4, NZ: -41.08826, 174.18019 |