捕捉到最近的标记

时间:2009-09-27 21:51:38

标签: google-maps google-maps-markers

我正在使用GoogleMaps,我有2个或更多标记,它们是可拖动的。 我想拍摄2个标记,如果它们在附近并将它们合并为1。 这有可能吗?

有人能给我指点......我怎么能意识到这一点?

1 个答案:

答案 0 :(得分:2)

您需要处理drag event对象上的GMarker。诀窍是当你发现自己足够接近另一个标记将它们拼接在一起时,你会怎么做。我played around a little用这个想法可能隐藏当前拖动的标记可能是一个很好的方法。

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