Можно ли написать взвешивание на основе направления? Я вижу, что есть параметр reverse
, но что это значит и как его вычислить?Графический маршрут, ориентированный на маршрут
Например, у меня есть прямой маршрут с юга на север
(0)
|
|
|
(1)
мне нужен разный вес от (1) до (0) и от (0) до (1).
==== Обновление
Я вычисленное направление базируется на двух последних точках автомобиля:
- ввода являются две последние точки транспортного средства
- База на двух последних точек, I» м угол вычисления
- Нахождение края в месте, где находится транспортное средство
- Вычислительный угол кромки на основе геометрии
- Сравнение двух ребер
Вот код: в 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). И тогда я вычисляя маршруты с обеих сторон:
Итак, если я буду использовать алгоритм 'dijkstrabi', я получу правильные обратные параметры? И как я могу вычислить это значение вручную, на случай, если я захочу изменить скорость во время выполнения, основан ли он на угле? –
Какое значение, значение скорости? Вы можете сделать это в зависимости от сохраненных значений на край, да – Karussell
Нет. Я имел в виду 'reverse', у меня есть движущийся автомобиль, как я могу вычислить его направление, соответствующее этому параметру? –