Недостаточный результат измерения карты Google Maps
Я выполняю запрос к API-интерфейсу Масштабирования карт Google для вычисления расстояния от одной точки к другой. Оба пункта находятся в России. Проблема в том, что в некоторых случаях API возвращает неправильный адрес.
Например, я выбираю этот пункт на побережье Черного моря, Россия.
Запрос API - это
https://maps.googleapis.com/maps/api/distancematrix/json?origins=58.3941198,33.223535&destinations=44.58019749055891,38.0705451965332&mode=driving&language=ru-RU&key=
Он возвращает
"destination_addresses" : [
"1 Chome-11 Kamifukubara, Yonago-shi, Tottori-ken 683-0004, Japan"
],...
Итак, Google Maps знает, что это Россия, но Distance Matrix думает, что это Япония. Почему?
Известна ли ошибка для мест вблизи морского побережья?
Ответы
Ответ 1
Хорошие новости и плохие новости:)
Плохая новость заключается в том, что японский адрес появится во многих удаленных местах, так как это постоянная проблема в API геокодирования.
Об этом сообщается в Tracker для Google Maps API:
https://code.google.com/p/gmaps-api-issues/issues/detail?id=9683
Посмотрите этот комментарий в поисковике проблем, чтобы узнать, как это сделать.
Хорошей новостью является то, что вы по-прежнему получаете правильные расстояния и маршрут от API-интерфейса расстояния и API-интерфейсов Directions.
Ответ 2
Проблема с этим расположением в Японии - это ее границы, которые говорят, что это по всему миру:
"formatted_address" : "1 Chome-11 Kamifukubara, Yonago-shi, Tottori-ken 683-0004, Japan",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 90,
"lng" : 180
},
"southwest" : {
"lat" : -90,
"lng" : -180
}
},
"location" : {
"lat" : 35.4426127,
"lng" : 133.3638089
},
"location_type" : "APPROXIMATE",
"viewport" : {
"northeast" : {
"lat" : 90,
"lng" : 180
},
"southwest" : {
"lat" : -90,
"lng" : -180
}
}
},
"place_id" : "ChIJlwBC99P3VjUReuUmCg7qU_E",
"types" : [ "sublocality_level_3", "sublocality", "political" ]