【问题标题】:Get lat/lng of points along the route say after every 100m每 100 米后获取沿途点的纬度/经度
【发布时间】:2013-04-17 11:17:06
【问题描述】:

使用方向服务我在地图上绘制了一条路线。 现在我希望将这条路线保存为 MySQL 中的多边形

所以我需要在每 100 米之后获取路线上的点的纬度/经度,并将其保存为多边形。 我如何在谷歌地图 V3 中做到这一点。我正在使用 JS 和 JAVA。

我还发现了类似的帖子here,有 75 次以上的浏览量,但没有任何回复。

【问题讨论】:

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


    【解决方案1】:

    好吧,首先我会专注于

    getPath()

    Google Maps API v3 中折线对象的方法。

    See this link

    这将返回一个 LatLng 对象的 MVC 数组,这些对象是生成的路线折线的顶点。 然后,如果您想要更多的点样本(例如,我的意思是您希望每 100 米后有一个点),您可以编写一个循环来生成更多的点。 循环中将发生的事情是它使用当前索引获取 LatLng 并获取下一个索引。然后它计算它们之间的航向,然后如果检查的两个点之间的距离超过 100 米,那么它将在距当前索引点 100 米的距离处放置一个点。

    为了给你更多的思考,我建议你看看this link

    在循环期间,您会将纬度收集到一个新数组中,该数组将在循环结束时包含生成的折线的所有所需顶点。

    至于在mysql中存储这些点,你得把这些点格式化成WKT格式。 由于将方向折线存储为多边形是无意义的,因此我建议您使用 LINESTRING。 这是一个维基百科页面,它为您提供 WKT 的概述:link

    【讨论】:

    • 好的,感谢您如此准确的回复。 getPath() 将返回我 mvc 数组。我知道我怎样才能得到我需要的东西。从那个数组。现在告诉我最后一件事:我在方向上有响应对象Display.setDirections(response);如何从响应对象中获取折线对象,以便在其上调用 getPath()。
    • 我发现了一些东西,但不确定。我正在寻找overview_path 吗?
    • 在文档developers.google.com/maps/documentation/directions/… 中,它说的是overview_polyline,但我之前一直在使用overview_path,所以我说是的:)
    • 我已经绘制了路线,也成功地将其保存为多边形,现在只剩下一件事了,如果用户通过拖动点来修改路线,我如何在这条修改后的路线上使用overview_path?我搜索了路线事件,但没有找到。我找到了方向更改事件。我只是想以某种方式引用新更改的路线。我怎样才能得到这个参考?
    • 在directions_changed事件中,将e放入回调函数中,先写入console,看看里面有什么。
    猜你喜欢
    • 1970-01-01
    • 2013-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-24
    • 2011-08-16
    • 1970-01-01
    • 2019-11-05
    相关资源
    最近更新 更多