Я использую API обратного геокодирования (на стороне клиента), чтобы превратить lat, длинные координаты в уличные адреса. Эти длинные латы берутся непосредственно из перетаскиваемого маркера на карте, поэтому у них много десятичных знаков информации.Google Maps Reverse Geocoding возвращает только «APPROXIMATE»
Если я положил его в Сан-Франциско, например, я перетащил маркер и отправлю пару {lat, lng} в API. Я возвращаю что-то очень общее, как "San Francisco, CA"
или в лучшем случае "South of Market, San Francisco, CA, USA"
.
Я знаю, что у Google есть информация об улицах в этой области, потому что я могу использовать API геокодирования вперед.
Есть ли какой-либо параметр, который может отсутствовать, что может вызвать это? Вот мой код:
maps.reverseGeocode = function(pos, callback) {
maps.geocoder.geocode({
latLng: pos,
bounds: maps.map.getBounds()
}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
console.log("Reverse Geocode:", results);
callback(results[0]);
} else {
console.log('Could not geocode: ' + status);
callback(undefined);
}
});
};
Адрес pos берется непосредственно с объекта маркера карты.