2016-04-17 4 views
5

Если я ищу 500 Buckingham Place, Eight Mile Plains, API Google Places возвращает 500 Buckingham Place, Eight Mile Plains, Queensland, Australia с идентификатором места Ej41MDAgQnVja2luZ2hhbSBQbGFjZSwgRWlnaHQgTWlsZSBQbGFpbnMsIFF1ZWVuc2xhbmQsIEF1c3RyYWxpYQ. Если я затем сделаю подробный вызов на этом месте, он возвращает Buckingham Pl, Eight Mile Plains QLD 4113, Australia.API Google Адресов - Возврат неверных номеров улиц

Это может быть реплицировано на веб-сайте Карт Google по номеру https://www.google.com.au/maps/search/500+Buckingham+Place+Eight+Mile+Plains. Возвращаемое место будет только Buckingham Pl, Eight Mile Plains QLD 4113, Australia.

Могу ли я получить API Google Адресов, чтобы возвращать результаты поиска только для фактических номеров улиц?

EDIT вызов я делаю https://maps.googleapis.com/maps/api/place/autocomplete/json?input=500%20Buckingham%20Place%2C%20Eight%20Mile%20Plains&types=address

+0

Как вы проводите поиск? Используете ли вы веб-службу или Google Maps Javascript API v3 Places Library? – geocodezip

+0

@geocodezip Я добавил пример вызова API –

+1

Я не понимаю проблему. Что вы хотели бы добавить и что ответить как можно быстрее? –

ответ

3

из google map api doc:

Адреса возвращаются в порядке лучших к наименее матчей. Как правило, более точный адрес является самым заметным результатом, так как в этом случае это . Обратите внимание, что мы возвращаем различные типы адресов, из наиболее конкретного адреса менее конкретные политические объектов, таких как кварталы, города, округа, штаты и т.д.

Таким образом, проблема в том, что когда вы добавляете улицу число, которое не существует, не является идеальным возвратом мат. Вот как найти, если ответ не идеальный матч:

Снова в google doc

partial_match указывает на то, что геокодер не возвращает точное матч для первоначального запроса, хотя он был в состоянии соответствовать части от запрошенный адрес.

Если вы выполните какой-либо тест, вы увидите, что, когда номер улицы не существует (или адрес недействителен или вы не даете достаточно информации для уникального адреса), он возвращает переменную partial_match: true и один или несколько близких совпадений, например изображение. enter image description here

Я сделал простой пример с автозаполнения и геокодером: http://jsfiddle.net/TomKarachristos/qLyrj38d/, это возвращение «не правильный результат», когда partial_match верно

if (results[0].partial_match) { 
    htmlContent = "not a valid result"; 
    } else { 
    [...] 
} 

Примечание: Данные карты Google, возможно, не будет 100 % точно.

+0

Я использую autocomplete api (https://developers.google.com/places/web-service/autocomplete), а не geocode api.Я не вижу partial_match с любым запросом из autcomplete api –

+0

. API автозаполнения предоставляет функцию getPlace(), которая дает больше информации для места, чем для адреса карты, поэтому вы должны использовать его вместе с геокодером, чтобы взять то, что вы хотите. Еще раз посмотрим на скрипку, я обновляю ее. –

+0

Итак, похоже, что в автозаполнении не указывается недопустимый адрес. Спасибо за вашу помощь. –

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