Непоследовательный язык в Google Place Details API

Я использую Google Place Details API на своем сервере для хранения информации о месте, используя placeId отправлено клиенту.

я столкнулся с проблемой относительно языка результата, который отличается, когда место является городом или адресом в этом городе, даже если язык указан в запросе. Например:

  • место код ChIJ53USP0nBhkcRjQ50xhPN_zw Это город Милан, и API возвращает Milan в город Lombardy как административная область (Английские имена)

  • место код EjBWaWEgZGVsbGEgU3BpZ2EsIE1pbGFuLCBQcm92aW5jZSBvZiBNaWxhbiwgSXRhbHk - это улица в Милане, и API возвращает Milano в город Lombardia как административная область (итальянские названия)

чтобы сделать его еще более странным, оба поиска возвращаются Italy как страна. Это ожидаемое поведение API?

2 ответов


Is this the expected behavior of the API?

Да, это ожидаемый результат. Даже если вы укажете язык, он вернет ответ на этом языке только в том случае, если он доступен, если нет, он вернет ответ на языке, на котором он был первоначально введен.

Пример 1:

  • Милан: как Милан-это город. Поэтому результаты доступны практически на всех языках. Почти во всех крупных городах мира есть результаты на любом языке. По умолчанию, вы получите результат на английском языке.

Пример 2:

  • Via della Spiga: как это улица. На данный момент результаты доступны только на итальянском языке, поскольку они были максимально введены на итальянском языке.

результат поиска "Via della Spiga" в Google Map:

enter image description here

чтобы узнать больше о это:

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

  2. языковой параметр на месте / подробности запрос не работа

оба вышеуказанных вопроса около 2 лет. Тем не менее, Google не может решить эти проблемы.

один из способов решить эту проблему-использовать текстовый поиск по умолчанию:

как вы можете преобразовать большую часть административной области / города в любое название языка с помощью textsearch:

`https://maps.googleapis.com/maps/api/place/textsearch/json?query=Lombardia&lang‌​uage=Your_language&key=YOUR_API_KEY` 

пример преобразование "Lombardia" на китайский язык:

https://maps.googleapis.com/maps/api/place/textsearch/json?query=Lombardia&language=zh-CN&key=YOUR_API

{
   "html_attributions" : [],
   "results" : [
      {
         "formatted_address" : "意大利伦巴第",
         "geometry" : {
            "location" : {
               "lat" : 45.47906709999999,
               "lng" : 9.8452433
            },
            "viewport" : {
               "northeast" : {
                  "lat" : 46.6351853,
                  "lng" : 11.4276993
               },
               "southwest" : {
                  "lat" : 44.6796491,
                  "lng" : 8.4978605
               }
            }
         },
         "icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png",
         "id" : "02401d0909d69ca5c69de799e193caf84acc41f9",
         "name" : "伦巴第",
         "place_id" : "ChIJf4M-GsNEgUcR1JMVKCIm8qY",
         "reference" : "CoQBfQAAAEKCAV-1Ec-V2ZfnWsCk_elhlEXckc_k94jBYlU7k5ivhrqPlWd24aSAa5fqNTfwKKhU0wSsZFv42aMm1BrG5wEwZNGKwFqELxMEt0ye7KFfBgVtfHZbqeiBx3hEH8Iq60wwW--edqpROkBTjHrxIwisCGJwhCzKKkQ9H6FdfW_aEhAnmI0ZOFk1KGaGms4IqTOiGhRX5iErBIwnmLos4U9Ggs325MmcEA",
         "types" : [ "administrative_area_level_1", "political" ]
      }
   ],
   "status" : "OK"
}

Ломбардии по-китайски 意大利伦巴第

при поиске placeID детали, вы получаете address_components время:

"address_components" : [
         {
            "long_name" : "Via della Spiga",
            "short_name" : "Via della Spiga",
            "types" : [ "route" ]
         },
         {
            "long_name" : "Milano",
            "short_name" : "Milano",
            "types" : [ "locality", "political" ]
         },
         {
            "long_name" : "Milano",
            "short_name" : "MI",
            "types" : [ "administrative_area_level_2", "political" ]
         },
         {
            "long_name" : "Lombardia",
            "short_name" : "Lombardia",
            "types" : [ "administrative_area_level_1", "political" ]
         },
         {
            "long_name" : "Italy",
            "short_name" : "IT",
            "types" : [ "country", "political" ]
         }
      ]

если вы цикл над вышеуказанным массивом и используйте текстовый поиск по умолчанию затем вы получите почти последовательный адрес в частности язык.


Я думаю, что вы можете использовать Optional parameters чтобы установить, какой язык вы хотите, такой, что:

близлежащий поисковый запрос представляет собой HTTP-URL следующей формы:

https://maps.googleapis.com/maps/api/place/nearbysearch/output?parameters

поставить language параметр, такой, что:

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=-33.8670522,151.1957362&radius=500&types=food&name=cruise&language=en

Для больше детали, пожалуйста см. здесь.