2017-01-31 4 views
0

Я работаю над продуктом, который выполняет поиск по геокодированию для введенных пользователем адресов. Код предполагает, что результаты должны содержать administrative_area_level_1, который переводится в state и stateCode (я знаю, что в документации указано, что не все страны используют это, но это то, как код был написан передо мной.). Мы видим проблему в производстве с адресами Финляндии, и я начал разбирать документацию на сайте разработчиков и нашел что-то интересное.API Карт Google и административные области в Финляндии

На этой странице: https://developers.google.com/maps/documentation/geocoding/intro

Они перечисляют пример поиска в Финляндии: https://maps.googleapis.com/maps/api/geocode/json?components=route:Annegatan|administrative_area:Helsinki|country:Finland

Для этого поиска, они перечисляют образец ответа, который содержит:

{ 
    "long_name" : "Helsingfors", 
    "short_name" : "Helsingfors", 
    "types" : [ "administrative_area_level_3", "political" ] 
} 

Однако, если вы на самом деле загрузите этот URL-адрес, это то, что он говорит по этой части адреса:

{ 
    "long_name" : "Helsingfors", 
    "short_name" : "H:fors", 
    "types" : [ "locality", "political" ] 
}, 

Что-то изменилось с этим?

Благодаря

+2

Геокодер только что прошел крупную переписку/обновление. См. Https://maps-apis.googleblog.com/2016/11/address-geocoding-in-google-maps-apis.html. – geocodezip

ответ

0

Если ваш план должны сделать третий административный уровень в дополнении к геокодированным точкам, я думаю, вы уже их границы где-то хранить.

Чтобы иметь дело с вариациями в long_name или short_name, вам нужно сделать себе словарь, который, например, переводит «H: fors» в «Helsignfors». И это работа, которая может занять некоторое время, но она также итеративная. Вам нужно будет записать вхождения google, описывающие краткое имя, которое у вас нет в вашей базе данных, а затем соответствующим образом отредактируйте словарь.