2

私はGoogleMapsを使用していますが、2つ以上のマーカーがあり、ドラッグ可能です。2つのマーカーが近くにある場合はスナップして、1つにマージします。これは可能ですか?

誰かが私にポインタを与えることができますか..どうすればそれを実現できますか?

4

1 に答える 1

2

GMarkerオブジェクトのドラッグイベントを処理する必要があります。秘訣は、マーカーをスナップするのに十分な距離にいることを検出したときに何をするかです。私はこれで少し遊んだので、現在ドラッグされているマーカーを非表示にするのが良い方法かもしれないと思いました。

GEvent.addListener(marker, "drag", function(point) {

    // iterate over your points and for each otherPoint...
    if (near (point, otherPoint))
    {
        // hide this marker
        marker.hide ();

        // move nearby marker to indicate merge?

        // then delete the dragged marker on the dragend (if it was merged)
    }
}

完全にエレガントなソリューションではありませんが、目的に合っている可能性があります。

編集:近くのポイントをチェックするコードを探しているのではないかと思ったので、例を更新して次のようにしました。

function near (point1, point2)
{
    sw = new GLatLng(point2.lat() - 0.005, point2.lng() - 0.005);
    ne = new GLatLng(point2.lat() + 0.005, point2.lng() + 0.005);
    var bounds = new GLatLngBounds(sw, ne);
    if (bounds.contains (point1))
        return true;

    return false;
}
于 2009-09-28T00:24:11.643 に答える