Я использую API геокодирования Google, чтобы получить координаты lat / lng для разных поисков местоположения на моем сайте. Проблема в том, что для районов Лондона (возможно, это не ограничивается только Лондоном, именно там большая часть нашей пользовательской базы), например, «Ватерлоо», геокодирование api возвращает разные результаты моему серверу с того момента, когда я помещаю url непосредственно в мой браузер. Это url, который генерируется для waterloo:
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 возвращает разные результаты на мой сервер?
(BTW мой сервер использует PHP5 simplexml_load_file () для получения результатов)
** Я не понимаю, почему этот вопрос был отмечен как дубликат другого. Вопрос, который является предполагаемым дубликатом, нисколько не отвечает на мой вопрос, мой вопрос не имеет ничего общего с предприятиями (только почтовые регионы) и не объясняет, почему к моему компьютеру по-разному относятся к моему компьютеру.
Вы испытываете что-то под названием Region Biasing: https://developers.google.com/maps/documentation/geocoding/#RegionCodes
Передайте параметр region=uk
GET, и ваши результаты должны быть одинаковыми (т.е. с учетом Великобритании) повсюду.