我正在使用反向地理编码API(客户端)将lat,long坐标转换为街道地址。这些纬度长度直接来自地图上的可拖动标记,因此它们有许多小数位信息。
例如,如果我把它放在旧金山,我拖动标记并将{lat,lng}对发送到API。我得到的回复非常一般,如"San Francisco, CA"
或最好"South of Market, San Francisco, CA, USA"
。
我知道谷歌在这个区域有街道信息,因为我可以完美地使用前向地理编码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。
答案 0 :(得分:1)
很快就想到了这一点。这是因为我在请求中包含bounds
参数。删除bounds
可以获得高度准确的结果。我现在只在前向地理编码中使用bounds
。