2

geopy を使用して NZ のアルコール販売店をジオコーディングします。

私が抱えている問題は、いくつかの場所には番地がなく、Google マップの場所であるということです。たとえば、次のように接続します。

Furneaux Lodge, Endeavour Inlet, Queen Charlotte Sound, Marlborough 7250

ブラウザの GUI を介して Google マップにアクセスすると、

ただし、Geopy でそれを使用すると、この地理的な場所が存在しないという GQueryError が表示されます。

ジオコーディングのコードは次のとおりです。

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")

そんな中、「エッフェル塔」が元気に動いていることに気がつきます。これを解決する方法はありますか?誰かが Google の「場所」内でエッフェル塔とフルノー ロッジの違いを説明できますか?

4

1 に答える 1

2

おそらくこれは Google Maps API の制限です。ただし、 GeoNamesは について知っているFurneaux Lodgeようです。そのため、Google マップ クエリが回答を返さない場合は、Google マップへのフォールバックとして使用できます。

>>> 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
于 2012-10-25T22:56:38.770 に答える