js 百度地图缩放位置偏移问题

JavaScript027

js 百度地图缩放位置偏移问题,第1张

问题原理:百度地图的缩放是基于body层的,如果body层有滚动条,并且不在最顶端,在当前位置插入了百度地图,也就是出现该问题时的状态,这个时候滚轮缩放就会产生偏移。

解决办法:当地图加载的时候执行

$(window).scrollTop(0)

也就是将父元素滚动到页面最顶端

    map.addEventListener("moveend",function(){

        if(new_marker){

            new_marker.setPosition(map.getCenter())

        }

    })

    map.addEventListener("zoomend",function(){

        if(new_marker){

            new_marker.setPosition(map.getCenter())

        }

    })

在这2个地图事件中重新指定图标的位置为地图中心

为map对象增加moving事件

map.addEventListener('moving',function(){

var center=map.getCenter()

//center即是地图中心点地理坐标

console.log(center)

marker.setPoint(center)//更新marker

})

http://developer.baidu.com/map/reference/index.php?title=Class:%E8%A6%86%E7%9B%96%E7%89%A9%E7%B1%BB/Marker

marker文档上注明1.2之前用setPoint,之后用setPosition,你根据自己的版本选用即可