在 Openstreetmap 中的路径内单击

Click inside the Path in Openstreetmap

我的 openstreetmap 应用程序中有两个叠加层,即分项叠加层和路径叠加层。我想在路径覆盖和自定义标记内的路径内提供点击

不适用于 PathOverlay。 使用 OSMBonusPack Polyline

如果您只想打开一个气泡,请使用 setInfoWindow。

如果你想做其他事情,继承自 Polyline class,覆盖 onSingleTapConfirmed,并使用 isCloseTo。

我终于得到了上述问题的答案...

*将所有路径叠加层添加到一个层中... *在点击检查 isPointOnLine(lox,loy,ltx,lty, x, y)

public boolean isPointOnLine(double lox, double loy, double ltx, 双 lty, 双 x, 双 y) { //判断点是否在线 双 dx = x - lox; 双 dy = y - loy; 双 tx = ltx - lox; 双 ty = lty - loy;

    // normalise the line vector
    Double t1 = new Double(1 / Math.sqrt(tx * tx + ty * ty));

    tx *= t1;
    ty *= t1;

    // calculate inverse length of secondary vector
    Double dl = new Double(1 / Math.sqrt(dx * dx + dy * dy));

    // take dot product of normalised line vector, and rotated normalised
    // secondary vector
    Double dot = (dy * tx - dx * ty) * dl;
    // Increase these values for less or more picky
    if (dot < -0.2 || dot > 0.2)
        return false;

    // calculate distance along line segment by taking dot product of
    // normalised
    // line vector and un-normalised secondary vector
    Double dis = tx * dx + ty * dy;
    if (dis < 0 || dis > 1 / t1)
        return false;

    return true;
}