是否可以根据方向编写权重?我看到有reverse
参数,但它是什么意思,我该如何计算它?
例如,我有一条从南到北的直线路线
(0)
|
|
|
(1)
我需要从 (1) 到 (0) 以及从 (0) 到 (1) 的不同重量。
==== 更新
我根据车辆的最后两个点计算了方向:
- 输入是车辆的最后两个点
- 基于最后两点,我正在计算角度
- 在车辆所在的地方寻找边缘
- 基于几何计算边角
- 比较两条边
这是Scala中的代码:
def isReverseDirection(target: Point, previous: Point) = {
val angle = RouteUtils.angleFromCoordinate(previous.lat, previous.long, target.lat, target.long)
val edgeState = findEdge(target.lat, target.long)
val pl = edgeState.fetchWayGeometry(3)
val edgeAngle = RouteUtils.angleFromCoordinate(pl.getLat(0), pl.getLongitude(0), pl.getLat(pl.getSize - 1),
pl.getLongitude(pl.getSize - 1))
Math.abs(edgeAngle - angle) > 90
}
我已经测试了这个解决方案,它似乎正在工作。我需要实施Car2FlagEncoder
. 在红点,我收到了来自车辆移动 (0) -> (1) 的阻塞数据。然后我从双方计算路线: