百度地图缩放问题
描述:1.在页面中直接展示地图,地图缩放正常2.在页面中地图div容器的上面,加了一个div且这个div高度超出页面高度,滚动页面到地图区域,缩放地图,此时出现缩放地图时...
描述:
1.在页面中直接展示地图,地图缩放正常
2.在页面中地图div容器的上面,加了一个div且这个div高度超出页面高度,滚动页面到地图区域,缩放地图,此时出现缩放地图时,地图一直在平移 展开
1.在页面中直接展示地图,地图缩放正常
2.在页面中地图div容器的上面,加了一个div且这个div高度超出页面高度,滚动页面到地图区域,缩放地图,此时出现缩放地图时,地图一直在平移 展开
2个回答
展开全部
// 下面代码解决页面滚动后,完美解决百度地图鼠标滚轮缩放不正确的问题
// 百度地图地图鼠标滚轮缩放是按照页面顶端为0计算的,所以如果页面滚动后不正确缩放了
// 原理是通过计算当前滚动鼠标时所在经纬度的平面坐标偏移差来纠正
// 稍微有个小缺点,就是动画滚动效果会刷两次,要使用ViewOptions禁用动画效果就更好了
if ($(document).scrollTop() > 0) { // 仅在页面滚动后使用下面的纠正功能
var p; // 当前鼠标所在经纬度
var sp; // 当前鼠标所在经纬度平面坐标
map.addEventListener("mousemove",function(e){
p = e.point;
sp = map.pointToPixel(p);
});
map.addEventListener("zoomend",function(e){
// 获取缩放后的老经纬度的新的平面坐标
var new_sp = map.pointToPixel(p);
var dx = new_sp.x - sp.x; // 偏移量X
var dy = new_sp.y - sp.y; // 偏移量Y
map.panBy(-dx, -dy); // 重新纠正,把老的经纬度重新显示在新屏幕坐标的原来的X,Y位置处
});
}
// 百度地图地图鼠标滚轮缩放是按照页面顶端为0计算的,所以如果页面滚动后不正确缩放了
// 原理是通过计算当前滚动鼠标时所在经纬度的平面坐标偏移差来纠正
// 稍微有个小缺点,就是动画滚动效果会刷两次,要使用ViewOptions禁用动画效果就更好了
if ($(document).scrollTop() > 0) { // 仅在页面滚动后使用下面的纠正功能
var p; // 当前鼠标所在经纬度
var sp; // 当前鼠标所在经纬度平面坐标
map.addEventListener("mousemove",function(e){
p = e.point;
sp = map.pointToPixel(p);
});
map.addEventListener("zoomend",function(e){
// 获取缩放后的老经纬度的新的平面坐标
var new_sp = map.pointToPixel(p);
var dx = new_sp.x - sp.x; // 偏移量X
var dy = new_sp.y - sp.y; // 偏移量Y
map.panBy(-dx, -dy); // 重新纠正,把老的经纬度重新显示在新屏幕坐标的原来的X,Y位置处
});
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我也遇到了这样的问题,我打开百度地图后试着在地图后任意位置点鼠标右键选择放大或缩小,然后滚动鼠标滚轮就能缩放了,您可以试试这样能不能解决,我也不知道是什么原因。
追问
鼠标右键点了,选择放大缩小哪来的
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询