Непоследовательный язык в 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:
чтобы узнать больше о это:
перевод информации о местах на язык, указанный запросом. В этом запросе запрашивается функция, которая сообщает разработчику, на каком языке результаты, чтобы они могли заботиться о данных соответственно, я лично думаю, что было бы здорово, пока проблема не будет исправлена.
оба вышеуказанных вопроса около 2 лет. Тем не менее, Google не может решить эти проблемы.
один из способов решить эту проблему-использовать текстовый поиск по умолчанию:
как вы можете преобразовать большую часть административной области / города в любое название языка с помощью textsearch:
`https://maps.googleapis.com/maps/api/place/textsearch/json?query=Lombardia&language=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
Для больше детали, пожалуйста см. здесь.