1

我在谷歌地图上有一个标记。我使用这个标记来检索坐标并更新表格中的纬度和经度。当用户放下标记时,我读取坐标。我的代码如下:

    $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中没有问题。

chromefirefox中,我在拖动标记时遇到了一些问题。如果我将鼠标移动得太快以至于指针超出了标记的边界框,则标记会卡住。我需要释放鼠标点击,再次拖动 de 标记并将其缓慢放到我最喜欢的位置。

有什么推荐吗?

我尝试了事件“mouseup”,结果相似。

4

1 回答 1

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);
});

你可能会喜欢这个(你可以下载demo,只有8kb,直接下载链接)。

于 2012-10-04T23:20:13.663 回答