快速移动鼠标时,在谷歌地图上拖动标记符

时间:2012-10-04 22:51:56

标签: javascript google-maps google-maps-api-3 drag-and-drop google-maps-markers

我在谷歌地图中有一个标记。我使用此标记来检索坐标并在表单中更新lat和long。当用户删除标记时,我会读取坐标。我的代码如下:

    $wnd.marker = new google.maps.Marker(
            {
                map : $wnd.map,
                draggable : true,
                icon : "/gmapsMarker.png",
                iconShadow : "/gmapsMarkerShadow.png",
                position : defaultPosition,
                clickable : true
            });

    var toggleBounce = function(e) {
        var lat = $wnd.marker.position.lat();
        var lng = $wnd.marker.position.lng();
        update(lat,lng,false);
    }.bind(this);

    google.maps.event.addListener($wnd.marker, 'dragend', toggleBounce);

有什么问题?

奇怪的是, Internet Explorer 7,8和9 没有问题。

chrome firefox 中,拖动标记后出现问题。如果我移动鼠标太快指针超出标记的边界框,标记卡住。我需要释放鼠标点击,再次拖动de marker并将其放在我最喜欢的位置。

任何建议?

我尝试使用类似结果的“mouseup”事件。

1 个答案:

答案 0 :(得分:2)

这可能对您有所帮助

google.maps.event.addListener($wnd.marker, 'dragend', function() {
    // Get the Current position, where the pointer was dropped
    var point = $wnd.marker.getPosition();
    // Center the map at given point
    $wnd.map.panTo(point);
    // Update
    update(point.lat(), point.lng(),false);
});

You may like this(您可以下载演示版,只需8kb,direct download link)。