【问题标题】:How do I add km/mile markers to a leafletjs map with a gpx file?如何使用 gpx 文件将公里/英里标记添加到 Leafletjs 地图?
【发布时间】:2017-01-04 16:48:14
【问题描述】:

我已经设法使用 Leaflet.js 从 GPX 文件中添加了一条折线,leaflet-gpx 加上结果在这里:http://ruter.pebi.dk/#gpx=https://dl.dropboxusercontent.com/u/1818604/ruter/2016/uge%2034/tl_5.4_km.gpx

我希望能够沿路线显示距离标记 - 任何指示如何去做?

【问题讨论】:

    标签: javascript leaflet gpx


    【解决方案1】:

    假设您使用杂食将 GPX 文件传递​​给 GeoJSON,有一个插件。

    https://github.com/adoroszlai/leaflet-distance-markers

    【讨论】:

    • 这实际上是我发现的第一个与我在其他应用程序中看到的 KM 标记相匹配的插件。我想这将是我使用的那个。
    【解决方案2】:

    您需要使用Turf.jscheap-ruler 之类的东西,以及它们的along() 函数。

    这些函数采用大地水准面表面上的线几何形状和距离(通常以公里为单位),并返回单个经纬度点。

    一旦您拥有这些函数来计算线的(大地)长度以及沿该线的点(考虑到它们到起点的距离),获取里程碑的位置就变得很简单了。一旦您以 lat-lng 格式获得这些位置,使用 Leaflet 将它们显示为标记也很简单。

    【讨论】:

    • 谢谢!!看起来完全符合我的需要 - 将在我有机会测试和实施后发回。
    • 我获取了一个给定的 gpx 文件,该文件的轨道据报道约为 10 公里长。如果我使用 turfjs 测量长度,则报告略多于 13 公里,而廉价统治者报告 11,7 公里。与 GPX 文件报告的长度相比,我应该如何解释这些测量值?
    • 编辑:找到一些解释大地测量的文章。
    • 大地测量学很难。进行大地测量很困难,而快速进行计算则更加困难。如果您需要精确测量,请查看npmjs.com/package/geographiclib - 但请记住,这仍然不会考虑斜率! (海平面上的距离不等于上下山的距离)
    猜你喜欢
    • 2011-10-01
    • 2017-06-12
    • 2013-07-24
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多