我的工作,使用连接到凹凸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