我想计算在路上发生事故的车辆(例如汽车)的行驶方向。
我拥有的数据(来自警方报告)是地址(街道、号码、邮政编码、城市)或地理位置(经度、纬度)。从而 我将“行驶方向”作为变量,其中包含正值或负值。 积极的是,如果车辆继续行驶,街道号码就会增加。负面影响是街道号码减少。
如何根据这些数据确定行驶方向(N°、E°)?
我已经找到了一种将街道地址更改为地理位置的方法,因此这应该没有问题,以及如何从两个位置获取行驶方向(N°,E°)。
我想我可能需要第二个地理位置(例如下一个或上一个地址的位置),但是存在道路转弯的问题,所以我需要另一个解决方案,例如在同一条道路上找到给定地理位置前面的点或者可以为我提供该特定位置的道路方向的工具。
目的是了解阳光眩光对交通事故的影响,所以如果我能研究这个主题,可能会挽救一些生命。
最佳答案
可以通过计算同一条道路上较早的点(例如事故发生前 50m)与事故本身之间的方位角来计算行驶方向。 公式为(Python):
def calculateBearing(lat1,lon1,lat2,lon2):
bearing = toDeg(math.atan2(math.sin(toRad(lon2-lon1))*math.cos(toRad(lat2)), \
math.cos(toRad(lat1))*math.sin(toRad(lat2))-
math.sin(toRad(lat1))*math.cos(toRad(lat2)) \
*math.cos(toRad(lon2-lon1))))
#North = 0°, East=90°, South = (-)180°, West=-90°
if float(bearing) < 0:
bearing = 360-abs(bearing)
#e.g. if bearing was -90, it is now 270
#e.g. if bearing was -179, it is now 181
return bearing
顺时针方向的值范围为 0°(北)到 359°。
关于java - 从地理位置和道路方向获取行驶方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58738176/