引用百度地图api二次加载地图错位

所做的网页需要有百度地图的功能。

于是引用了百度地图,但是在初始化地图的时候遇到了一个问题。

初始化的地图中心点不正确。所标记的定位如果是第一次加载的话,定位是正确的。

但如果没有清缓存就进行第二次加载的话,这个定位一开始虽然是在地图的最中间,但是由于初始定位不正确,一开始标记的定位也不正确,但是当你拖动地图,或者将地图放大缩小时,你才发现标记的定位又会回到所需要的正确定位。

初始化地图的中心在我所预想的定位的左下方。上网上查了一下,大多数的问题都是标记初始化在视图左上方(0,0)处。跟我的问题不符合。

他们所说的dom问题,也不存在。

最后师姐给了我一个建议,使用异步操作。最后终于成功了。

在初始化地图的时候,point直接换成城市名字,就是正常的初始化地图,那么便是point的错误。

代码如下:

<script type="text/javascript">

// 百度地图API功能

  var map = new BMap.Map("allmap");

var point = new BMap.Point(120.377841,30.3099);

setTimeout(function () {

    // f1的任务代码

    map.centerAndZoom(point, 15);

console.log(point)

map.enableScrollWheelZoom(true);

var marker = new BMap.Marker(point); // 创建标注

map.addOverlay(marker); // 将标注添加到地图中

var opts = {

width : 200, // 信息窗口宽度

height: 100, // 信息窗口高度

title : "杭州轨物科技有限公司" , // 信息窗口标题

enableMessage:true,//设置允许信息窗发送短息

}

var infoWindow = new BMap.InfoWindow("地址:地址", opts); // 创建信息窗口对象

marker.addEventListener("click", function(){

map.openInfoWindow(infoWindow,point); //开启信息窗口

});

  }, 1000);

</script>

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值