Google maps 拖放;从地图外部将对象放入Google地图:标记未放置在正确的纬度/经度

Google maps 拖放;从地图外部将对象放入Google地图:标记未放置在正确的纬度/经度,google-maps,google-maps-api-3,drag-and-drop,google-maps-markers,latitude-longitude,Google Maps,Google Maps Api 3,Drag And Drop,Google Maps Markers,Latitude Longitude,我想将一个对象从地图外部拖到我的谷歌地图(APIV3)中。 经过一些研究,我发现并尝试使其适应我的项目。 其主要思想是在地图上拖动一个.png图像,当鼠标按钮按下时,获取实际坐标并在该lat/lng处放置一个标记。 但我注意到,拖动图像的点与放置标记的点之间存在差异。无论缩放级别如何,上面链接的示例上的差异大约为10/15像素。在“最大缩放”(max zoom)时,这不是很重要,但取消缩放的次数越多,间隙就越重要 间隙图示: 在我的网站上,我正试图将绿色标记从地图外拖到日内瓦附近的莱曼湖南部:

我想将一个对象从地图外部拖到我的谷歌地图(APIV3)中。 经过一些研究,我发现并尝试使其适应我的项目。

其主要思想是在地图上拖动一个.png图像,当鼠标按钮按下时,获取实际坐标并在该lat/lng处放置一个标记。

但我注意到,拖动图像的点与放置标记的点之间存在差异。无论缩放级别如何,上面链接的示例上的差异大约为10/15像素。在“最大缩放”(max zoom)时,这不是很重要,但取消缩放的次数越多,间隙就越重要

间隙图示:

  • 在我的网站上,我正试图将绿色标记从地图外拖到日内瓦附近的莱曼湖南部:(我们就在鼠标升起之前,这仍然是我的.png图像)

  • 当我向上移动鼠标时,“真实”标记被放在这里:

(我们距离通缉地点100公里/60英里…)

那么,为什么会出现这样的差距呢?在我上面链接的示例中,差距不那么重要,但它也存在。我的浏览器控制台中没有错误,这似乎不是一个棘手的CSS问题。
有人知道如何纠正这个问题吗


谢谢

标记位置的计算不准确

  • 地图的偏移量也必须在计算中使用(当地图未放置在页面的左上角时)
  • 默认情况下,标记的锚定点是底部中心,但脚本只是采用通过事件参数提供的位置,这可能会给出不同的结果,具体取决于图像中的夹点
  • 固定功能:

    $(文档).ready(函数(){
    $(“#draggable”).draggable({helper:'clone',
    停止:功能(e、ui){
    var mOffset=$($map.getDiv()).offset();
    var point=new google.maps.point(
    ui.offset.left mOffset.left+(ui.helper.width()/2),
    ui.offset.top mOffset.top+(ui.helper.height())
    );
    var ll=overlay.getProjection().fromContainerPixelToLatLng(点);
    地标;
    }
    });
    });
    
    我使用了此代码,但当我平移贴图然后删除元素时,永久标记将变为偏移。还有其他人有这个问题吗?