gpt4 book ai didi

java - Graphhopper路线方向加权

转载 作者:行者123 更新时间:2023-11-30 11:04:53 26 4
gpt4 key购买 nike

是否可以根据方向写权重?我看到有 reverse 参数,但它是什么意思,我该如何计算它?

例如我有一条从南到北的直线

(0)
|
|
|
(1)

我需要从 (1) 到 (0) 以及从 (0) 到 (1) 的不同权重。

====更新

我已经根据车辆的最后两个点计算了方向:

  1. 输入是车辆的最后两个点
  2. 根据最后两点,我正在计算角度
  3. 在车辆所在的地方寻找边缘
  4. 根据几何计算边的角度
  5. 比较两条边

这是 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) 的阻塞数据。然后我从两侧计算路线:

(0) -> (1)

(1) -> (1)

最佳答案

这是可能的。您可以存储例如正如我们在 Bike2WeightFlagEncoder 中所做的那样,向前和向后的速度与下坡相比,上坡速度较慢,但​​有其他应用,如交通影响汽车速度等。参见 FastestWeighting关于如何使用它。

背景:标志已经正确交换,具体取决于是从 0->1 还是 1->0,这是在 GraphHopperStorage 的 EdgeIterator 实现中完成的。

reverse 参数仍然没有任何影响。此参数可以是 truefalse 仅适用于双向算法(对于 unidir 算法它将始终是 false),因此您需要采取另外注意你读取反向速度的反向搜索的权重。

关于java - Graphhopper路线方向加权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29851245/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com