java - 从地理位置和道路方向获取行驶方向

标签 java python-3.x geolocation driving-directions

我想计算在路上发生事故的车辆(例如汽车)的行驶方向。

我拥有的数据(来自警方报告)是地址(街道、号码、邮政编码、城市)或地理位置(经度、纬度)。从而 我将“行驶方向”作为变量,其中包含正值或负值。 积极的是,如果车辆继续行驶,街道号码就会增加。负面影响是街道号码减少。

如何根据这些数据确定行驶方向(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/

相关文章:

java - 未添加 maven 程序集传递依赖项

java - 在服务器上以编程方式添加拦截器

python-3.x - 构建继承 Pandas DataFrame 的类

python - 使用Python3.2重新缩放图像

android - 是否可以找到另一部安卓手机的位置?

javascript - iOS Safari 16 已允许地理定位,但导航器权限仍然显示 "prompt"

mysql - foursquare 或 gowalla 从哪里获取位置数据?

java - 如何将文本内容另存为 jcr :data property in aem?

java - 使用 Eclipse TPTP 分析 Google App Engine 项目?

python - 如何更改 IMEI 号码列表的格式以包含空格?