前段时间迭代了地图功能,需要把地图限制在太湖这个范围内,就是不要让用户的地图停留在这以外的区域,网上找了不少资料都没有能完全实现这个功能的(仅仅限制边界并且禁止拖拽的话放大了也无法拖拽了),自己动手写了一下,效果很满意:
前面一部分为初始化地图
后面限制了地图的范围,拖拽出区域会自动弹回地图初始值
function initMap() {
createMap(); //创建地图
setMapEvent(); //设置地图事件
}
function createMap() {
map = new BMap.Map("allmap", {
enableMapClick: false
});
map.centerAndZoom(new BMap.Point(120.590027, 31.311812), 7);
gc = new BMap.Geocoder();
}
var point = new BMap.Point(init_lng, init_lat);
function setMapEvent() {
map.enableScrollWheelZoom(true); //启用滚轮放大缩小,默认禁用
map.enableKeyboard(); //启用键盘操作,默认禁用。
map.enableDragging(); //启用地图拖拽,默认启用
map.enableDoubleClickZoom(); //启用双击放大,默认启用
map.setMinZoom(9);
map.setMaxZoom(20);
// map.disableDragging(); //禁止拖拽
//限制地图范围的部分
var strictBounds = new BMap.Bounds(new BMap.Point(119.9622