删除PolyLine上的PolyLine单击或映射单击?

时间:2014-08-12 10:21:29

标签: android google-maps polyline

注意:在我的情况下, PolyLine是两个标记之间的单行

问题:只想在MapClick上删除polyLine。

如您所知,无法向 PolyLine 添加点击监听器。所以我必须使用MapClick,但我想在点击时删除PolyLine(简单线)。

Marker之间有许多PolyLine。我只是想删除我点击的PolyLine

我的想法。

  1. 有一种方法可以使用循环并检查最近的标记并删除 他们之间的界限。
  2. 我们在数学学习的一种方法。点就行了。当我点击 在地图上它检查所有相邻的标记并检查是否这个latLng 躺在两个Marker之间的PolyLine上。
  3. 我的想法都存在一些问题。喜欢 。

    • 在第一个中如果我点击它将最终删除最近的地方 PolyLine。可能是我无意中点击了任何地方
    • 在第二个中我必须完全点击该行。如果 point(我的点击)不要躺在上面。该行不会删除。

    不知道如何解决这样的问题。给我一个idea,并告诉我如何实施第二个方法。 (Point lie on a line between two markers。)

    或分享一些资源。

    先谢谢..

1 个答案:

答案 0 :(得分:0)

point lie on a line的问题在于折线是由连接点组成的。您无法真正检查折线上是否有点,而不是比较您的点与折线上最近的之间的距离。

要完成您的目标,您必须循环修改折线并检查哪一个具有最接近点击坐标的 。找到折线后,您可以在折线上调用setVisible(false);

In this answer我解释了如何循环折线并检查距离。我还注意到,您可以通过循环遍历所有折线来找到最近的折线。

这可以通过使用算法检查点是还是点来进一步增强。如果离开 - 那么你continue到下一个折线,如果 - 你继续循环。