我正在使用反向地理编码API(客户端)将经纬度较长的坐标转换为街道地址。这些经纬度直接从地图上的可拖动标记中获取,因此它们具有许多小数位信息。
例如,如果将其放在旧金山,则拖动标记并将{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是直接从地图标记对象获取的。
最佳答案
很快就弄清楚了。这是因为我在请求中包含了bounds
参数。删除bounds
给我非常准确的结果。我现在仅在正向地理编码中使用bounds
。
关于javascript - Google Maps反向地理编码仅返回“APPROXIMATE”位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27031051/