Я создал функцию, использующую API Googles Geocoder для выполнения обратной геолокации.Он извлекает лат / лон из собственных функций браузера и отправляет их в Google.Назначение функции - получить приблизительный адрес пользователя (например, 123 Fake Street
).Код города / муниципалитета, провинции / штата, страны и почтового индекса не требуется, только адрес улицы.
function geoSuccess(pos) {
Geocoder = new google.maps.Geocoder;
Geocoder.geocode({location: {lat:pos.coords.latitude,lng:pos.coords.longitude}}, function(r, s) {
if (s === 'OK') {
var found = false,
x = 0;
do {
if (r[x].address_components[0].types.indexOf('route') !== -1) {
found = true;
}
x++;
} while(!found && x < r.length);
alert(r[x-1].address_components[0].long_name);
}
});
}
В зависимости от того, как работает функция, она просматривает полученный JSON для поиска маршрута.Однако существует несоответствие для мобильных устройств, где точность отличается от настольных компьютеров.Несмотря на поиск route
, часто мобильные устройства будут возвращать либо неправильные данные (ближайшее шоссе).