Google地图反向地理编码仅返回" APPROXIMATE"地点

时间:2014-11-20 03:05:23

标签: javascript google-maps google-maps-api-3 google-geocoder

我正在使用反向地理编码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。

1 个答案:

答案 0 :(得分:1)

很快就想到了这一点。这是因为我在请求中包含bounds参数。删除bounds可以获得高度准确的结果。我现在只在前向地理编码中使用bounds