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では、マーカーをドラッグしているときに問題が発生します。マウスを速く動かしすぎて、ポインタがマーカーのバウンディングボックスの外に出ると、マーカーが動かなくなります。マウスクリックを離し、マーカーをもう一度ドラッグして、お気に入りの位置にゆっくりとドロップする必要があります。

何かお勧めはありますか?

イベント「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);
});

あなたはこれを好きかもしれません(あなたはデモをダウンロードすることができます、たった8kb、直接ダウンロードリンク)。

于 2012-10-04T23:20:13.663 に答える