@Override public double calcWeight(EdgeIteratorState edgeState, boolean reverse, int prevOrNextEdgeId) { double weight = super.calcWeight(edgeState, reverse, prevOrNextEdgeId); if (Double.isInfinite(weight)) return Double.POSITIVE_INFINITY; return weight / (0.5 + flagEncoder.getDouble(edgeState.getFlags(), KEY)); } }
@Override public double calcWeight(EdgeIteratorState edge, boolean reverse, int prevOrNextEdgeId) { double priority = flagEncoder.getDouble(edge.getFlags(), KEY); double bendiness = flagEncoder.getDouble(edge.getFlags(), MotorcycleFlagEncoder.CURVATURE_KEY); double speed = getRoadSpeed(edge, reverse); double roadDistance = edge.getDistance(); // We use the log of the speed to decrease the impact of the speed, therefore we don't use the highway double regularWeight = roadDistance / Math.log(speed); return (bendiness * regularWeight) / (0.5 + priority); }
@Override public double calcWeight( EdgeIteratorState edgeState, boolean reverse, int prevOrNextEdgeId ) { double weight = super.calcWeight(edgeState, reverse, prevOrNextEdgeId); if (Double.isInfinite(weight)) return Double.POSITIVE_INFINITY; return weight / (0.5 + flagEncoder.getDouble(edgeState.getFlags(), KEY)); } }
@Override public double calcWeight( EdgeIteratorState edge, boolean reverse, int prevOrNextEdgeId ) { double priority = flagEncoder.getDouble(edge.getFlags(), KEY); double bendiness = flagEncoder.getDouble(edge.getFlags(), MotorcycleFlagEncoder.CURVATURE_KEY); double speed = getRoadSpeed(edge, reverse); double roadDistance = edge.getDistance(); // We use the log of the speed to decrease the impact of the speed, therefore we don't use the highway double regularWeight = roadDistance / Math.log(speed); return (bendiness * regularWeight) / (0.5 + priority); }
@Override public double calcWeight(EdgeIteratorState edge, boolean reverse, int prevOrNextEdgeId) { double priority = flagEncoder.getDouble(edge.getFlags(), KEY); double bendiness = flagEncoder.getDouble(edge.getFlags(), MotorcycleFlagEncoder.CURVATURE_KEY); double speed = getRoadSpeed(edge, reverse); double roadDistance = edge.getDistance(); // We use the log of the speed to decrease the impact of the speed, therefore we don't use the highway double regularWeight = roadDistance / Math.log(speed); return (bendiness * regularWeight) / (0.5 + priority); }
@Override public double calcWeight(EdgeIteratorState edgeState, boolean reverse, int prevOrNextEdgeId) { double weight = super.calcWeight(edgeState, reverse, prevOrNextEdgeId); if (Double.isInfinite(weight)) return Double.POSITIVE_INFINITY; return weight / (0.5 + flagEncoder.getDouble(edgeState.getFlags(), KEY)); } }
@Override public double calcWeight(EdgeIteratorState edgeState, boolean reverse, int prevOrNextEdgeId) { double weight = super.calcWeight(edgeState, reverse, prevOrNextEdgeId); if (Double.isInfinite(weight)) return Double.POSITIVE_INFINITY; return weight / (0.5 + flagEncoder.getDouble(edgeState.getFlags(), KEY)); } }
@Override public double calcWeight(EdgeIteratorState edge, boolean reverse, int prevOrNextEdgeId) { double priority = flagEncoder.getDouble(edge.getFlags(), KEY); double bendiness = flagEncoder.getDouble(edge.getFlags(), MotorcycleFlagEncoder.CURVATURE_KEY); double speed = getRoadSpeed(edge, reverse); double roadDistance = edge.getDistance(); // We use the log of the speed to decrease the impact of the speed, therefore we don't use the highway double regularWeight = roadDistance / Math.log(speed); return (bendiness * regularWeight) / (0.5 + priority); }