原来使用百度地图显示门店和分公司的业绩信息,近有一个需求,需要在原来的地图上实现缩放切换的功能,
比例大的地图就显示城市,比例小的地图就显示门店。
查了一下,可以注册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>