Я искал возможные решения или подтверждение по вопросу, при котором запрос по place_id возвращается из Google Autocomplete API результаты не соответствуют службе сведений о месте.
Пример со строкой запроса - 44 London Road, Севеноукс, TN131A
Запрос на автозаполнение API:
https://maps.googleapis.com/maps/api/place/autocomplete/json?input=44%20London%20Road,%20Sevenoaks,%20TN131A&types=address&components=country:uk&key=KEY
Результат:
{
"predictions": [
{
"description": "44 London Road, Sevenoaks TN13 1AS, UK",
"id": "a68cc04956c7d845e7ecf4310ab7e37c8b1726bc",
"matched_substrings": [
{
"length": 14,
"offset": 0
},
{
"length": 8,
"offset": 26
}
],
"place_id": "EiY0NCBMb25kb24gUm9hZCwgU2V2ZW5vYWtzIFROMTMgMUFTLCBVSw",
"reference": "CjQqAAAAO-BUieTtItdrzdJeUH3XgoqPQDQkb8adId4-OgGtQ69p1xImSYbX9cOIutz64vodEhApHwR2GWECK1--3E9m3Jz-GhQQBNtahApp19gUfuIWJLESCavJfw",
"structured_formatting": {
"main_text": "44 London Road",
"main_text_matched_substrings": [
{
"length": 14,
"offset": 0
}
],
"secondary_text": "Sevenoaks TN13 1AS, UK",
"secondary_text_matched_substrings": [
{
"length": 8,
"offset": 10
}
]
},
"terms": [
{
"offset": 0,
"value": "44 London Road"
},
{
"offset": 16,
"value": "Sevenoaks"
},
{
"offset": 26,
"value": "TN13 1AS"
},
{
"offset": 36,
"value": "UK"
}
],
"types": [
"route",
"geocode"
]
}
],
"status": "OK"
}
Результаты, возвращаемые функцией автозаполнения, - это те, которые я ожидаю
1) Один результат
2) Описание адреса содержит правильный полный адрес с почтовым индексом TN13 1AS
Теперь, когда я беру place_id и запрашиваю информацию о месте, я ожидаю более детальную информацию об адресе. Однако я получаю адрес, похожий на адрес автозаполнения, но с другим почтовым индексом, который не совпадает с исходным результатом.
Запрос на размещение информации API:
https://maps.googleapis.com/maps/api/place/details/json?placeid=EiY0NCBMb25kb24gUm9hZCwgU2V2ZW5vYWtzIFROMTMgMUFTLCBVSw&key=KEY
Результат:
{
"html_attributions": [],
"result": {
"address_components": [
{
"long_name": "44",
"short_name": "44",
"types": [
"street_number"
]
},
{
"long_name": "London Road",
"short_name": "London Rd",
"types": [
"route"
]
},
{
"long_name": "Dunton Green",
"short_name": "Dunton Green",
"types": [
"locality",
"political"
]
},
{
"long_name": "Sevenoaks",
"short_name": "Sevenoaks",
"types": [
"postal_town"
]
},
{
"long_name": "Kent",
"short_name": "Kent",
"types": [
"administrative_area_level_2",
"political"
]
},
{
"long_name": "England",
"short_name": "England",
"types": [
"administrative_area_level_1",
"political"
]
},
{
"long_name": "United Kingdom",
"short_name": "GB",
"types": [
"country",
"political"
]
},
{
"long_name": "TN13 2UG",
"short_name": "TN13 2UG",
"types": [
"postal_code"
]
}
],
"adr_address": "<span class=\"street-address\">44 London Rd</span>, <span class=\"extended-address\">Dunton Green</span>, <span class=\"locality\">Sevenoaks</span> <span class=\"postal-code\">TN13 2UG</span>, <span class=\"country-name\">UK</span>",
"formatted_address": "44 London Rd, Dunton Green, Sevenoaks TN13 2UG, UK",
"geometry": {
"location": {
"lat": 51.2914523,
"lng": 0.1679203
},
"viewport": {
"northeast": {
"lat": 51.29279178029149,
"lng": 0.169216380291502
},
"southwest": {
"lat": 51.2900938197085,
"lng": 0.166518419708498
}
}
},
"icon": "https://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png",
"id": "9e62665526d3d76deb1d04b508d3afb273a6415b",
"name": "44 London Rd",
"place_id": "ChIJ77ZF32hS30cRvP2Kbxo9Eqc",
"reference": "CmRbAAAAC1pl4PwpN5mzt1MNHaUsxP9tnaaAEwBtJNi1MasmPV12-itLnnDGk8QMeoKHaeJw1mIfYvO6AWXaIZ94OEGsLAzwuOfNG_8Klza0ScrVe1U9DbOv1RyAyGh2bAQuG03zEhBEfrvBLZjXbIyMJHraFobWGhR1wJVnsIfPIwVhqpj2w2x-NIdCSg",
"scope": "GOOGLE",
"types": [
"street_address"
],
"url": "https://maps.google.com/?q=44+London+Rd,+Dunton+Green,+Sevenoaks+TN13+2UG,+UK&ftid=0x47df5268df45b6ef:0xa7123d1a6f8afdbc",
"utc_offset": 60,
"vicinity": "Dunton Green"
},
"status": "OK"
}
Как вы можете видеть, почтовый индекс, возвращаемый из информации о месте: TN13 2UG , а не TN13 1AS , как в оригинальном предложенном адресе.
Кроме того, различия между предлагаемым адресом и адресом детали места заключаются в следующем:
автозаполнение : 44 London Road, Sevenoaks TN13 1AS, Великобритания
информация о месте : Лондон Лондон Роуд, Дантон Грин, Севеноукс TN13 2UG, Великобритания
Мой вопрос здесь - я что-то упускаю при запросе подробных сведений о месте? Должен ли я использовать другой подход при поиске деталей адреса?
Или, возможно, это известная проблема, поскольку все сведения о месте не синхронизированы и, скорее всего, будут аналогичны другим результатам поиска.
ОБНОВЛЕНИЕ:
Этот вопрос получил большой жирный дубликат с надписью https://issuetracker.google.com/issues/78900692.
Ссылочный дубликат выпуска можно увидеть здесь: https://issuetracker.google.com/issues/35823492
Короче говоря - да, есть проблема. Да, они работают над этим. Нет, ETA нет.