2012-10-25 2 views
2

Использование геофизических источников для геокодирования в Северной Америке.Геокодирование без адресов: Geopy

Проблема заключается в том, что в некоторых местах нет адресов улиц, а есть места в Картах Google. Например, подключение:

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

в Google Maps с помощью браузера GUI дает мне

Однако, используя что в 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") 

Между тем, я заметил, что «Эйфелева башня» работает отлично. Есть ли возможность решить эту проблему и может ли кто-нибудь объяснить разницу между Эйфелевой башней и Furneaux Lodge в местах расположения Google?

ответ

2

Возможно, это ограничение API Карт Google. GeoNames однако, кажется, знает о Furneaux Lodge, так что вы можете использовать его в качестве запасного варианта на Google Maps, если запрос Google Maps не возвращает ответ:

>>> 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 
+0

спасибо Педро. Это звучит как логическая идея. –

Смежные вопросы