API геокодирования Google дает разные результаты для моего сервера и моего веб-браузера

Я использую Google Geocoding API, чтобы получить координаты широты и долготы для поиска различных местоположений на моем сайте. Проблема в том, что для районов Лондона (он может не ограничиваться только Лондоном, где находится большая часть нашей пользовательской базы), таких как «Ватерлоо», API геокодирования возвращает на мой сервер результаты, отличные от того, когда я помещал URL-адрес непосредственно в мой браузер. Это URL-адрес, который генерируется для Ватерлоо:

http://maps.googleapis.com/maps/api/geocode/xml?address=waterloo,%20london,%20england&bounds=48.8,-11.2|60.9,1.9&sensor=false®ion=uk

Если я вставлю это в свой браузер, я получу правильный район Ватерлоо («Ватерлоо, лондонский район Ламбет, Лондон SE1, Великобритания»). Однако, когда мой сервер извлекает результаты из этого URL-адреса, он получает адрес «2C Waterloo Rd, London, Greater London NW2 7UA, UK», который находится в нескольких милях от Ватерлоо. (Он также возвращает только один результат.)

Мой сервер находится в Великобритании, и использование GeoIP на IP-адресе подтверждает это. Почему Google возвращает на мой сервер разные результаты?

(Кстати, мой сервер использует PHP5 simplexml_load_file() для получения результатов)

** Я не понимаю, почему этот вопрос помечен как дубликат другого. Вопрос, который является предполагаемым дубликатом, ни в малейшей степени не отвечает на мой вопрос, мой вопрос не имеет ничего общего с бизнесом (только почтовые регионы) и не объясняет, почему мой сервер обрабатывается иначе, чем мой ПК.


person buffcoredave    schedule 24.04.2012    source источник
comment
Вы нашли какое-нибудь решение?   -  person jean-max    schedule 27.09.2018
comment
Боюсь, я никогда этого не делал, мне пришлось искать другие способы обойти это. Однако это было более 4 лет назад, поэтому API геокодирования может вести себя по-другому, я понятия не имею.   -  person buffcoredave    schedule 28.09.2018


Ответы (1)


Вы столкнулись с так называемым смещением по регионам: https://developers.google.com/maps/documentation/geocoding/#RegionCodes

Передайте параметр region=uk GET, и ваши результаты должны быть одинаковыми (т. е. адаптированными для Великобритании) везде.

person Wander Nauta    schedule 24.04.2012
comment
Извините, я забыл упомянуть, что я уже пробовал это, и ничего не изменилось - я обновил свой вопрос, чтобы отразить это - person buffcoredave; 25.04.2012
comment
Спасибо, я решил свой вопрос здесь stackoverflow.com/questions/30748515/ - person Marco Marsala; 10.06.2015
comment
Я обнаружил еще один странный случай: использование дефисов в адресе приводит к разным результатам в API геолокации и Картах Google. Решение состояло в том, чтобы удалить дефисы из адреса, в то время как акцентированные буквы не являются проблемой при использовании urlencode. - person Marco Marsala; 10.06.2015