我的工作,使用連接到凹凸PC校準的行車電腦考察了道路或公路的條件項目的路徑上的點的座標。當運營商沿着預先定義的路線行駛時,運營商輸入缺陷代碼。計算給定的距離
我需要顯示在地圖屏幕,顯示車輛的當前位置,同時考慮到從行車電腦的距離數據上的指示器。
我知道確切的緯度經度在道路的每個部分的起點座標,道路是由一系列點構成。
的問題是:如何可以計算車輛假定它繼續在路線上行駛,並有一定的距離(例如1.4公里)的緯度經度座標。座標將被「鎖定」在路線上,如下圖藍色所示。
謝謝, 亞歷
我的工作,使用連接到凹凸PC校準的行車電腦考察了道路或公路的條件項目的路徑上的點的座標。當運營商沿着預先定義的路線行駛時,運營商輸入缺陷代碼。計算給定的距離
我需要顯示在地圖屏幕,顯示車輛的當前位置,同時考慮到從行車電腦的距離數據上的指示器。
我知道確切的緯度經度在道路的每個部分的起點座標,道路是由一系列點構成。
的問題是:如何可以計算車輛假定它繼續在路線上行駛,並有一定的距離(例如1.4公里)的緯度經度座標。座標將被「鎖定」在路線上,如下圖藍色所示。
謝謝, 亞歷
下面是一些Java肥胖型僞碼,給使用點之間的線性內插中的溶液。
inputs: distance, points
// construct a list of segments from the points
segments = [];
for(point in points) {
if(not first point) {
seg = new segment(last_point, point)
add seg to segments
}
last_point = point
}
// calculate current lat and lon
for(segment in segments) {
if(distance < segment.length) {
alpha = distance/segment.length
lat = segment.start.lat * (1.0 - alpha) + segment.end.lat * alpha
lon = segment.start.lon * (1.0 - alpha) + segment.end.lon * alpha
return (lat, lon)
} else {
distance = distance - segment.length
}
}
您可能還想要考慮樣條插值,這可能會更準確。這將需要更多的數學,但上述想法仍然可以應用。
非常好,稍微調整這個作品完美無瑕。點直接鎖定在線上,所以精確度非常高。 我不得不的[*(1.0 - α)]開關和[*α-在LAT經度計算到結束,否則它去向後和每個線段之間躍升周圍。 – 2010-06-07 11:40:35
您可以插值道路的給定段的車輛的位置。因此,首先計算車輛已經完成了多少段,以及車輛當前段的位置。 – barrycarter 2010-06-03 14:18:37