通过百度地图缩放功能显示不同层级的数据

浏览: 4039

原来使用百度地图显示门店和分公司的业绩信息,近有一个需求,需要在原来的地图上实现缩放切换的功能,

比例大的地图就显示城市,比例小的地图就显示门店。

查了一下,可以注册zoomend事件,根据map.getViewport().zoom获取当前比例值,然后根据不同要求更新显示。

示例:

城市级别:

门店级别:

代码:

<script type="text/javascript">
  Zoom_level=11;
      // 百度地图API功能
    var map = new BMap.Map("allmap");    // 创建Map实例
    map.centerAndZoom(new BMap.Point(116.404, 39.915), 12);  // 初始化地图,设置中心点坐标和地图级别
    map.addControl(new BMap.MapTypeControl());   //添加地图类型控件
    map.setCurrentCity("北京");          // 设置地图显示的城市 此项是必须设置的
    map.enableScrollWheelZoom(true);     //开启鼠标滚轮缩放
  map.addOverlay(new BMap.Marker(new BMap.Point(116.45,39.89),{icon:new BMap.Icon( 'pic2.png', new BMap.Size(21,27)),title: 'store1'}));
  map.addOverlay(new BMap.Marker(new BMap.Point(116.49,39.87),{icon:new BMap.Icon( 'pic2.png', new BMap.Size(21,27)),title: 'store2'}));
map.addEventListener("zoomend", function(type){
if (!type.lD) {
  if (map.getViewport().zoom >= Zoom_level )
    {  
      map.clearOverlays();
        map.addOverlay(new BMap.Marker(new BMap.Point(116.45,39.89),{icon:new BMap.Icon( 'pic2.png', new BMap.Size(21,27)),title: 'store1'}));
        map.addOverlay(new BMap.Marker(new BMap.Point(116.49,39.87),{icon:new BMap.Icon( 'pic2.png', new BMap.Size(21,27)),title: 'store2'}));
    }
   else if (map.getViewport().zoom < Zoom_level )
       {
           map.clearOverlays();
        map.addOverlay(new BMap.Marker(new BMap.Point(116.40,39.92),{icon:new BMap.Icon( 'pic1.png', new BMap.Size(21,27)),title: 'city1'}));
       }
  }
}
);
</script>
推荐 1
本文由 seng 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

2 个评论

这个嵌套到PHP,还是java里面的?
都可以啊, 出来都是一个HTML页面啊,如何动态生成随便你了。 我的示例就是一个html文件。

要回复文章请先登录注册