Правильный формат адреса, чтобы получить наиболее точные результаты от Google GeoCoding API - PullRequest
21 голосов
/ 14 октября 2011

Существует ли какой-либо стандартный формат для предоставления адресной строки в Google GeoCoding API для получения наиболее точных результатов на карте.

Например, следующий запрос не дает правильного результата.

http://maps.googleapis.com/maps/api/geocode/xml?address=bloom,Bloomfield,CT,06002,USA&sensor=false

Спасибо

Mandeep

Ответы [ 6 ]

24 голосов
/ 14 октября 2011

Я полагаю, что рекомендуемый формат:

House Number, Street Direction, Street Name, Street Suffix, City, State, Zip, Country

Результаты тем менее конкретны, чем меньше информации вы можете предоставить.

В вашем примере геокодер ищет улицуназванный 'цветением', из которых есть подобные совпадения в ОН вместо CT.При удалении 'bloom' из запроса и последующем поиске возвращается Bloomfield, CT.

5 голосов
/ 04 марта 2015

Определение поиска по адресу Google:

address - Уличный адрес, который вы хотите геокодировать, в формате, используемом национальной почтовой службой страны.обеспокоен.Следует избегать дополнительных элементов адреса, таких как названия компаний и номера единиц, номеров или этажей.

https://developers.google.com/maps/documentation/geocoding/#geocoding

Как мне отформатировать запросы геокодера, чтобы максимизировать количество успешных запросов?

Геокодер предназначен для сопоставления адресов улиц с географическими координатами.Поэтому мы рекомендуем вам форматировать запросы геокодера в соответствии со следующими рекомендациями, чтобы максимально увеличить вероятность успешного запроса:

  • Укажите адреса в соответствии с форматом, используемым национальной почтовой службой соответствующей страны.
  • Не указывайте дополнительные элементы адреса, такие как фирменные наименования, номера подразделений, номера этажей или номера апартаментов, которые не включены в адрес, определенный почтовой службой соответствующей страны.
  • Используйте номер улицы в помещении, где это возможно, вместо названия здания.
  • Используйте адрес номера улицы в предпочтении, чтобы указывать перекрестки, где это возможно.
  • Не предоставляйте «подсказки», такие как рядомДостопримечательности.

https://developers.google.com/maps/faq#geocoder_queryformat

4 голосов
/ 05 апреля 2014

Я нашел ответ неполным и в нем не было источника.

Смотрите здесь: https://developers.google.com/places/documentation/autocomplete#place_autocomplete_responses

API автозаполнения карт от Google возвращает гораздо более простой формат: "Улица, Город, Страна" Теперь вы можете использовать такую ​​строку для поиска адреса, и она должна привести к одному точному результату. Кроме того, если вы используете API автозаполнения, вы также получите уникальный идентификатор, который можно использовать для дальнейших подробных запросов.

Формат адреса улицы сильно зависит от места, где вы на самом деле находитесь. В США «Номер дома, направление улицы, название улицы, суффикс улицы» может иметь смысл, в большинстве стран Европы это не приведет к успешному запросу.

Адреса в большинстве стран ЕС различны (часто «суффикс номера улицы»), например, «Kumpelstraat 25A», «Psolevcu 331 / 26b»), и я думаю, мы были бы удивлены, если бы взглянули на некоторые восточные страны.

Так что, если вы привязываете свой код к одной области (США, большая часть ЕС), вы, возможно, хорошо закодируете формат.
Если вы хотите иметь более гибкую систему, вам нужно либо найти форматирование для вашей целевой аудитории, либо запросить один из API googles, чтобы автоматически получить правильную строку. Ссылка, которую я связал, очень хороша, но для нее требуется ключ API с ограничением количества бесплатных запросов в день.

3 голосов
/ 28 апреля 2014

Я наткнулся на этот вопрос и нашел решение, которое помогло мне:

Я думаю, что ответ можно найти с помощью компонентной фильтрации, посмотрите на: https://developers.google.com/maps/documentation/geocoding/#ComponentFiltering

Пример в Javascript:

var request = require('request');

var url = "https://maps.googleapis.com/maps/api/geocode/json?" +
    "address=Herengracht 180" +
    "&components=postal_code:1016 BR|country:NL" +
    "&sensor=false";

request(url, function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(body);
  }
  else {
    console.log('error', error);
  }
});
1 голос
/ 28 сентября 2016

Не нужно избегать квартир.Это работает:

https://maps.googleapis.com/maps/api/geocode/xml?address=14202+N+42nd+St+Unit+301+33613

"Apt", "Room" и "Suite" работают также

Все они возвращают 301 в качестве подпредприятия и отображаются в "formatted_address "as" # 301. "

Пол отправляет ...

0 голосов
/ 23 апреля 2019

Я обнаружил, что официальные коды стран, такие как "US", "DE", "FR", не работают должным образом. Замена их на полное название страны дает мне гораздо лучшие результаты.

Я не нашел источника, где это указано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...