9

次のコードでわかるように、マーカーはドラッグ可能です。場合によっては、マーカーが間違った領域 (ポリゴン) にドロップされた場合、ドロップ イベントをキャンセルして、その結果、マーカーが自動的に元の位置に戻るようにしたいと考えています。

function placeMarker(latlng, color, isDraggable) {
    var marker = new GMarker(latlng, { icon: getIcon(color), draggable: true });
    map.addOverlay(marker);
    GEvent.addListener(marker, "dragend", function () {
        //redraw polygons again
    });
    GEvent.addListener(marker, "click", function () {
        var latlng = marker.getPoint();
        map.openInfoWindowHtml(marker.getPoint(), latlng.y + ", " + latlng.x);
    });
    return marker;
}

dragend問題は、マーカーが既にイベントにドロップされているときに、マーカーのドラッグ イベントをキャンセルするにはどうすればよいかということです。

4

2 に答える 2

1

Google Map API がサポートしていたかどうかは覚えていませんが、マーカーの動きをスタックに保存し、必要なときに古い位置を抽出することで、この機能を自分で提供できます。私はそれが取り返しのつかない答えではないことを知っています。それは単なる一般的な考えです。しかし、それが役立つことを願っています。

于 2011-02-27T00:00:14.887 に答える