Google Maps API v3 - 捕捉到折线边缘

时间:2013-08-20 00:33:17

标签: javascript google-maps google-maps-api-3

有人知道如何将标记或折线捕捉到现有折线的坐标中吗?

我正在寻找googlemaps引擎精简版中的行为:https://mapsengine.google.com

如果您在那里选择折线或标记并尝试编辑另一个折线坐标(使用ctrl或shift),它将捕捉到标记或折线坐标

1 个答案:

答案 0 :(得分:0)

据我所知,没有简单的方法可以做到这一点。折线只有你最初传递它们的位置(latLng对象),就是它。

因此,考虑到这一点,您可以采取两种方法:

  1. 您可以绘制Polyline
  2. ,而不是Polygon
  3. 更改折线以包含更多积分。
  4. 多边形

    使用这种方法,您必须绘制一个非常的多边形,足够薄,看起来像一条线。

    通过这种方法,您可以使用containsLocation()方法轻松检查标记是否在多边形内部,如果不是,则将其新位置设置为多边形内部。

    缺点是您的Polygon需要非常非常薄,并且您需要为线条设置宽度。如果宽度太大,拖动看起来会不准确,如果它太小,你可能会错过它。

    折线

    使用这种方法,您必须向折线添加多个点,然后在每次熄灭时将标记移动到其中一个点。

    这种方式无需创建宽度来计算线条,但您需要自动计算数十个(如果不是数百个)额外点,然后将它们添加到折线。

    两种解决方案都有效,两者都有利弊。最后,它几乎围绕你更喜欢哪种毒药老话。

    附加

    除了理论之外,我确实找到了good example for the Polylines strategy(评论为@geocodezip,感谢评论为@BradBarrow。)