gpt4 book ai didi

javascript - OpenLayers:从 gpx 获取距离

转载 作者:行者123 更新时间:2023-11-30 12:43:04 24 4
gpt4 key购买 nike

我有一个 gpx 文件。我使用 OpenLayers 和 this example 在 OSM 上显示它.

我的要求是获取路线的距离。我怎样才能做到这一点?

请帮忙,谢谢。

最佳答案

基本上,GPX 是一个 XML 文件,定义了一组 Track Segment,其中包含按逻辑顺序连接的 Track Point 列表。

<trkseg>
<trkpt lat='float' lon='float'/>
<trkpt lat='float' lon='float'/>
<trkpt lat='float' lon='float'/>
...
</trkseg>

所有你需要的是使用点到点的距离计算所有轨道段长度(点包含纬度和经度)点到点的距离将使用以下公式计算:

var radius = 6378137.0 ; // earth radius in meter
var DE2RA = 0.01745329252; // degre to radian conversion

// return the distance between (lat1,lon1) and (lat2,lon2) in meter.
GCDistance= function (lat1, lon1, lat2, lon2) {
if (lat1 == lat2 && lon1 == lon2) return 0;
lat1 *= DE2RA;
lon1 *= DE2RA;
lat2 *= DE2RA;
lon2 *= DE2RA;
var d = Math.sin(lat1) * Math.sin(lat2) + Math.cos(lat1) * Math.cos(lat2) * Math.cos(lon1 - lon2);
return (radius * Math.acos(d));
};

请注意 Track Segment 不是逻辑连接的事实。

使用 DOM 解析 GPX 非常简单。

此代码摘自使用多年的库。这里是sample我在哪里使用它。

希望对您有所帮助。G.

关于javascript - OpenLayers:从 gpx 获取距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23676026/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com