原文:https://blog.csdn.net/yzyssg1/article/details/73130679
百度地图的API虽然说覆盖物多了可以用聚合,但聚合使用下来,性能并不好
目前解决方案是,获取地图的左下角和右上角的经纬度,然后根据此经纬度范围,到数据库中搜索,把该区域内的覆盖物取出标注到地图上。
生成地图时绑定事件,在移动和缩放时触发:
Js代码
map.addEventListener("moveend", queryInRect);
//map.addEventListener("moveend", funMoveend);
map.addEventListener("zoomend", queryInRect);
Js代码
function queryInRect (event) {
//alert(event.type + '==' + event.target);
var cp = map.getBounds(); // 返回map可视区域,以地理坐标表示
var sw = cp.getSouthWest(); // 返回矩形区域的西南角
var ne = cp.getNorthEast(); // 返回矩形区域的东北角
zoom = map.getZoom();
if (zoom < defaultShowLampZoom) {
// 放大级数小于17后,清除所有覆盖物,但百度覆盖物不能删除
// 以后做成清除非网关控制器 TODO