3

有谁知道如何使标记或折线捕捉到现有折线的坐标?

我正在寻找类似 googlemaps engine lite 中的行为:https ://mapsengine.google.com

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

4

1 回答 1

0

据我所知,没有简单的方法可以做到这一点。折线仅具有您最初传递它们的位置(latLng 对象),仅此而已。

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

  1. 代替Polyline,您可以绘制Polygon
  2. 更改您的折线以包含更多点。

多边形

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

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

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

折线

使用这种方法,您必须将多个点添加到多段线,然后每次标记消失时将其移动到其中一个点。

这样就不需要创建宽度来计算线,但是你需要自动计算几十个如果不是几百个额外的点,然后将它们添加到折线。

这两种解决方案都行得通,而且都各有利弊。最后,它几乎围绕着你喜欢哪种毒药这句老话。

额外的

除了理论,我确实找到了折线策略的一个很好的例子感谢@geocodezip的评论和@BradBarrow的响应)。

于 2016-07-13T12:59:26.223 回答