Ограничьте результаты поиска Google Maps API v3 страной, сместив их в местоположение - PullRequest
0 голосов
/ 24 января 2019

Я пытаюсь ограничить результаты поиска страной и сильно смещать их до определенного значения широты / долготы (но не ограничивать).

I 'используя поле «bounds», чтобы сместить результаты поиска, возвращаемые API, в местоположение пользователя ( документация ).Это работает хорошо, однако мне также нужно ограничить возвращаемые результаты страной.

Я использую поле «регион» для этого, но оно не ограничивает результаты страной, а только смещает их.Я пытался использовать поле "componentRestrictions", чтобы ограничить результаты для страны.Это работает хорошо, однако, смещение местоположения, которое я установил изначально (с полем "bounds"), кажется, перестает работать (или, по крайней мере, теперь работает иначе).

Любые идеи о том, как можно достичь моей целиздесь?

Пример

Я отправляю запрос геокодера для "35 бастион ул."с регионом, установленным в CA (Канада), с установкой границ на 2,5 градуса вокруг Ванкувера, Британская Колумбия, Канада.Может появиться два результата поиска: один в Торонто, Онтарио, Канада и другой в Нанаймо, Британская Колумбия, Канада.Я ожидаю, что Nanaimo придет в этом случае, потому что это более близкое местоположение, и это делает.Ссылка: https://maps.googleapis.com/maps/api/geocode/json?address=35%20bastion%20st.&region=CA&bounds=46.7827,-125.6207|51.7827,-120.620&key=AIzaSyD3y1Mk-vZjfgqg1GB_dOWMDo004oY8xus

Теперь, если у меня тот же запрос, но с примененным фильтром страны, я ожидаю, что будет возвращен тот же результат, но это не так.Ссылка: https://maps.googleapis.com/maps/api/geocode/json?address=35%20bastion%20st.&region=CA&bounds=46.7827,-125.6207|51.7827,-120,%20-122.1207&components=country:CA&key=AIzaSyD3y1Mk-vZjfgqg1GB_dOWMDo004oY8xus

Редактировать :

Исправлена ​​вторая ссылка: https://maps.googleapis.com/maps/api/geocode/json?address=35%20bastion%20st.&bounds=46.7827,-125.6207|51.7827,-120.620&components=country:CA&key=AIzaSyD3y1Mk-vZjfgqg1GB_dOWMDo004oY8xus

1 Ответ

0 голосов
/ 09 февраля 2019

По мнению Google, это не ошибка (см. Здесь: https://issuetracker.google.com/issues/123557217).

По мнению наших инженеров, это работает как задумано.

Причина в том, что странаКомпонент будет иметь приоритет при использовании двух параметров, так как варианты использования этих двух совершенно разные.

Более того, «35 Bastion st» очень неоднозначно, и его следует искать с помощью автозаполнения, где видовые области / границы могутлучше повлиять на результаты.

...