zoukankan      html  css  js  c++  java
  • Odoo 百度地图的bug

    在给百度地图模块添砖加瓦的时候,碰到一个问题,就是鼠标选取的坐标与实际的坐标存在误差,如下图所示:

     

    不论我怎么调整百度地图的参数,这个偏差一直存在。

    后来经过google,发现了其他人也有类似的情况出现,其原因在于百度地图的缩放是基于body层的,如果body层有滚动条,并且不在最顶端,在当前位置插入了百度地图,也就是出现该问题时的状态,这个时候滚轮缩放就会产生偏移。

    知道了问题的原因,就好处理,既然存在这个偏差,那么我们在加载marker的时候把这个偏差去掉应该就可以了。

    map.addEventListener('click', function (e) {
        // 百度地图以滚动条开始位置做为起点,导致鼠标和marker距离有偏差
        var offset = $('.o_content').scrollTop();
        var newpixel = new BMapGL.Pixel(e.pixel.x, e.pixel.y + offset);
        var newpoint = map.pixelToPoint(newpixel);
        //清除地图上所有的覆盖物
        map.clearOverlays();
        var marker = new BMapGL.Marker(newpoint);
        map.addOverlay(marker);
    })

    odoo的form表单的滚动条是在.o_content样式的div元素中产生的,因此我们计算出这个偏差值,然后把计算后的结果重新加载到地图中正确的位置就可以了。

    处理后的效果:

     

  • 相关阅读:
    Lotto--poj2245
    Avoid The Lakes--poj3620
    Fire Net--hdu1045
    变形课--hdu1181
    Apache Mina入门实例
    谈谈项目
    设计模式之装饰者模式
    linux下的权限控制
    centos 6.5 搭建JSP运行环境
    centos 6.5 搭建ftp服务器
  • 原文地址:https://www.cnblogs.com/kfx2007/p/14789609.html
Copyright © 2011-2022 走看看