Google Maps API:radarSeach,带有地图边界,可将结果返回到外部

时间:2015-07-16 15:18:29

标签: javascript google-maps-api-3

我有以下代码:

google.maps.event.addListener(map, 'idle', function() {
    var request = {
        bounds: map.getBounds(),
        keyword: selected_provider //some value
    };

    service.radarSearch(request, function(results, status) {

        for (var i = 0; i < results.length; i++) {
            var marker = new google.maps.Marker({
                position: results[i].geometry.location,
                map: map
            });
        });

    });

});

在某些情况下,结果'数组有一些位置,哪些标记打印在地图边界之外。

map.getBounds()返回:

oh {Da: mh, va: hh}
Da: A: -23.53883129305287 j: -23.53223111409202
va: A: -46.6811610542145 j: -46.686782964309714

某个结果:

A: -23.536062
F: -46.68732699999998

所以,F(经度)不在西南和东北的经度之内。

有人见过这个吗?

1 个答案:

答案 0 :(得分:0)

如此处所述

documentation

“界限用于在搜索位置时偏向结果(可选)。如果设置了边界,则将忽略位置和半径。结果不会局限于这些边界内的结果;但是,其中的结果将排名更高。”

对于我来说,使用bounds作为参数执行搜索没有任何意义,并且响应带有超出边界的结果。我认为我唯一可以做的就是在显示结果数组之前迭代它们,并检查每个项目是否在内部边界内。