【问题标题】:Snap to Road with direction in concern以关注的方向对齐道路
【发布时间】:2010-07-11 13:20:57
【问题描述】:
我正在尝试在我所有定制的 GPS 软件中添加快速道路功能。有几千条道路,有几十万个节点(经纬度点)。我已经阅读了 SO 中所有那些以“直线上最近的点”作为一个很好的解决方案的快速道路问题。但是,我正在做的是捕捉到与汽车行驶方向相同的最近道路。我很困惑如何实现它。一个简单的程序会对我有很大帮助。 (另请注意数十万或节点作为性能问题)。
编辑:伙计们?来吧,给个线索。
【问题讨论】:
标签:
c#
geometry
navigation
gps
【解决方案1】:
首先,使用三角函数找到您要测试的道路的方向,即距离北方多少度:找到该部分的两个定义经纬度点并将它们称为 point1 和 point2:(在伪代码中)
double roadDrctn = Math.Atan2(point2.y - point2.y, point2.x - point1.x)
然后获取您的汽车/GPS 的方向,看看它是否相同或您想对它做什么。记住还要测试它 + 180 度(或 Math.Pi,如果它使用弧度),因为你可以沿着一条路走双向!我对这种技术的唯一担心是三角函数在性能方面非常昂贵。
希望能回答你的问题。