我正在尝试在所有自定义的GPS软件中添加“快速上路”功能。有数以千计的节点(纬度点)的道路。我已经阅读了“用直线上的最接近点”作为解决方案中的所有问题。但是,我要做的是捕捉到与汽车行驶方向相同的最近道路。我对如何实现它感到困惑。一个简单的过程将对我有很大帮助。 (也请注意成千上万的节点或性能相关节点)。

编辑:伙计们?来吧,给个线索。

最佳答案

首先,使用三角函数找到要测试的道路的方向,即从北到北的度数:找到该路段的两个定义纬度点,并将其命名为point1和point2 :(使用伪代码)

double roadDrctn = Math.Atan2(point2.y - point2.y, point2.x - point1.x)


然后获取您的汽车/ GPS的方向,看看它是否相同或您想对其执行任何操作。请记住还要同时测试+ 180度(如果使用弧度,则也要进行测试(如果使用Math.Pi,则为Math.Pi)),因为您可以沿着道路双向行驶!我对此技术的唯一担心是,触发函数在性能上是非常昂贵的。

希望这能回答你的问题。

关于c# - 紧贴道路,关注方向,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3223182/

10-10 14:54