【问题标题】:Snap to nearest marker捕捉到最近的标记
【发布时间】:2010-12-01 20:35:56
【问题描述】:

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

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

【问题讨论】:

  • 对于我错过的这个问题,您有什么具体的要求吗?
  • 是我说的吗? ;) meta.stackexchange.com/questions/234
  • 好吧..别人为我做了..但他使用了你的代码..所以:thx :)

标签: google-maps google-maps-markers


【解决方案1】:

您需要处理GMarker 对象上的drag event。诀窍是当您检测到您离另一个标记足够近以将它们捕捉在一起时您会做什么。我用这个 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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    • 2014-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多