Если я геокодирую регионы и / или обращаюсь к Google Maps, api возвращает нелогичные географические результаты. Иногда город возвращается в качестве административной территории, а иногда тот же город возвращается в качестве населенного пункта. Почему? Я просто не понимаю логики.
Например, если я геокодирую "Neerijnen, Nederland" (https://maps.googleapis.com/maps/api/geocode/xml?address=Neerijnen,Nederland), я получу следующий результат:
Если я геокодирую и адресую в одном городе, Google возвращает его как населенный пункт. Если я геокодирую "Van Pallandtweg 11, 4182 CA Neerijnen, Nederland", я получу следующий результат:
Может кто-нибудь объяснить логику?
API геокодирования предназначен для преобразования адресной строки в координаты и наоборот. Для получения лучших результатов вы должны предоставить полный адрес в формате, поддерживаемом национальной почтовой службой. Когда вы предоставляете строку наподобие Neerijnen, Nederland
, это считается не полным адресом, а неполным или неоднозначным запросом. Действительно, Neerijnen - это муниципалитет и город в Нидерландах, поэтому в базе данных Google есть административный район и населенный пункт с таким же названием. API геокодирования предназначен для получения наилучшего соответствия для прямого геокодирования (обычно только один результат). В случае двусмысленности, как в вашем примере, Google выберет результат с более высокой оценкой (известностью) в соответствии с внутренними критериями. Я не могу сказать, почему админка 2 имеет более высокий балл, потому что я не из Google.
Вы можете увидеть границы административной территории
https://maps.google.com/?q=Neerijnen,+Нидерланды&ftid=0x47c6f414182c45d5:0xb34aa41b420fdfa4
и границы населенных пунктов
https://maps.google.com/?q=4182+Neerijnen,+Нидерланды&ftid=0x47c6f4192fae3201:0x9c3d72f48c595a87
Есть статья о передовых методах использования Geocoding API, которая также охватывает случай неполных и неоднозначных запросов:
https://developers.google.com/maps/documentation/geocoding/best-practices
Надеюсь, это поможет!
В этом случае я ожидал такого ответа: Страна: Нидерланды Административный район, уровень 1: Гелдерланд, административный район, уровень 2: Нерийнен.