我有以下代码:
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(经度)不在西南和东北的经度之内。
有人见过这个吗?
答案 0 :(得分:0)
如此处所述
“界限用于在搜索位置时偏向结果(可选)。如果设置了边界,则将忽略位置和半径。结果不会局限于这些边界内的结果;但是,其中的结果将排名更高。”
对于我来说,使用bounds作为参数执行搜索没有任何意义,并且响应带有超出边界的结果。我认为我唯一可以做的就是在显示结果数组之前迭代它们,并检查每个项目是否在内部边界内。