谷歌地图API v3-捕捉多段线边缘
Google Maps API v3 - Snap to polyline edges
有人知道如何将标记或多段线捕捉到现有多段线的坐标中吗?
我正在寻找类似谷歌地图引擎lite中的行为:https://mapsengine.google.com
如果您在那里选择一条多段线或标记,并尝试编辑另一个多段线坐标(使用ctrl或shift),它将捕捉到标记或多段线的坐标
据我所知,没有简单的方法可以做到这一点。多段线只有最初传递给它们的位置(latLng对象),仅此而已。
因此,考虑到这一点,您可以采取两种方法:
- 可以绘制多边形而不是多段线
- 更改多段线以包含更多点
多边形
使用这种方法,您必须绘制一个非常细的多边形,细到看起来像一条线。
使用这种方法,您可以通过使用containsLocation()
方法轻松检查标记是否在多边形内,如果不在,则将其新位置设置为在多边形内。
缺点是多边形需要非常非常细,并且需要设置线的宽度。如果宽度太大,拖动看起来会不准确,如果宽度太小,你可能会错过它。
多段线
使用这种方法,您必须向多段线添加多个点,然后每次标记熄灭时都将其移动到其中一个点。
这样就不需要创建宽度来计算直线,但需要自动计算数十个(如果不是数百个)额外点,然后将它们添加到多段线中。
这两种解决方案都可行,而且都有利弊。最后,它几乎围绕着你更喜欢哪种毒药这句老话。
额外
撇开理论不谈,我确实为多段线策略找到了一个很好的例子(对@geocodezip的评论和@BradBarrow的回应表示赞扬)。
相关文章:
- 使用复选框绘制多段线谷歌地图API3,不'不起作用
- 如何将超链接添加到通过传单创建的传单多段线.Draw
- 如何在Maps API v3.中更改多段线的路径
- watchPosition与多段线组合
- 谷歌地图Javascript v3多段线点击事件
- 在谷歌地图上为每个“多边形”生成新的多段线;日期“;来自mysql的值
- 谷歌地图API多段线创建失败;未捕获类型错误:数字不是函数;
- 谷歌地图的多段线边界
- 谷歌地图API-在从ajax页面加载新数据之前清除标记、多段线
- GMapv3+同时显示所有标记+多段线
- 需要帮助,为谷歌地图多段线构建阵列
- 设置标记之间多段线的动画-Mapbox
- 如何将多段线添加到标记阵列中
- 谷歌地图V3删除多段线覆盖
- 传单-如何显示标记而不是多段线
- 谷歌地图多段线上的符号始终旋转
- 单击了多段线的哪一段
- 如何用raphael.js制作重复绘制多段线的动画
- 谷歌地图多段线阵列从XML
- 谷歌地图API v3-捕捉多段线边缘