前端中加载百度地图,地图容器绝对定位,地图缩放中心点偏移的处理

            var map1 = new BMap.Map("allmap");
            map1.centerAndZoom(new BMap.Point(116.404, 39.915), 9);
            var point1 = new BMap.Point(116.404, 39.915);
            map1.enableScrollWheelZoom();
            map1.enableInertialDragging();
            map1.enableContinuousZoom();
            map1.addControl(new BMap.OverviewMapControl());
            map1.addControl(new BMap.NavigationControl());
            map1.addControl(new BMap.ScaleControl());      // 添加比例尺控件
            map1.enableScrollWheelZoom();                  //启用滚轮放大缩小
            var cp;
            map1.addEventListener("mousemove",function(){//加载完成时,触发
                cp = map1.getCenter();
            });
            map1.addEventListener("mouseend",function(){//加载完成时,触发
                cp = map1.getCenter();
            });
            map1.addEventListener("tilesloaded",function(){//加载完成时,触发
                map1.setCenter(cp);
            });

原因预测:根据使用经验来看,百度地图处理缩放是并不是以当前容器来计算中心点的,所以在缩放的时候才会出现中心点偏移的情况,当容器设置偏移量越多缩放的时候地图中心点偏移就越大
处理思路:在在平移之前获取地图的中心点,地图加载完成之后设置前面获取的中心点为当前的中心点,但是仍然存在一个问题,如果只平移的话 就会存在强制设置中心点而使平移失效,所以在平移之后事件中重新获取了一次中心点来解决平移事件的问题

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值