Различные геокодировании ответа на PHP, чем непосредственно в URL панели навигации (Google Maps API v3 JSON) - PullRequest
1 голос
/ 13 декабря 2011

Если я добавлю этот URL: http://maps.googleapis.com/maps/api/geocode/json?address=la%20coru%C3%B1a,%20la%20coru%C3%B1a,%20espa%C3%B1a&sensor=false&region=es

Я получу этот объект json:

{   "results" : [
  {
     "address_components" : [
        {
           "long_name" : "A Coruña",
           "short_name" : "A Coruña",
           "types" : [ "locality", "political" ]
        }, etc...

Но если я попробую его с PHP:

<code><?php $address = urlencode("la coruña, la coruña, España"); $geocode = file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?address='.$address.'&sensor=false&region=es'); echo "<pre>"; print_r($geocode); echo "
";?>

Ответ не равен.

Вы видите, что он не равен: Corunna! = Coruña

Я имел дело с UTF-8, но яне получить решение.

1 Ответ

1 голос
/ 14 декабря 2011

Вы указываете region, но это вызывает смещение региона, но не влияет на язык вывода.Для этого вам нужно указать параметр language.Из API документов :

  • language (необязательно) - Если language не указан,геокодер будет пытаться использовать везде, где это возможно, родной язык домена, из которого отправляется запрос.

Я думаю, что сервер, на котором выполняется код PHP, находится в другомстрана, чем вы есть (или Google думает, что это так).Вот почему вы получаете разные результаты, когда запрашиваете с сервера и запрашиваете из браузера.

На самом деле, когда я нажимаю на предоставленный вами URL, я получаю вывод на английском языке («Корунна»), предположительно, потому что я нахожусь в Соединенных Штатах.Если я добавлю &language=es к URL, я получу испанскую версию ("Корунья").

...