
org.opentripplanner.inspector.raster.WheelchairEdgeRenderer Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of otp Show documentation
Show all versions of otp Show documentation
The OpenTripPlanner multimodal journey planning system
The newest version!
package org.opentripplanner.inspector.raster;
import java.awt.Color;
import java.util.Optional;
import org.opentripplanner.inspector.raster.EdgeVertexTileRenderer.EdgeVertexRenderer;
import org.opentripplanner.inspector.raster.EdgeVertexTileRenderer.EdgeVisualAttributes;
import org.opentripplanner.inspector.raster.EdgeVertexTileRenderer.VertexVisualAttributes;
import org.opentripplanner.routing.api.request.preference.RoutingPreferences;
import org.opentripplanner.street.model.edge.Edge;
import org.opentripplanner.street.model.edge.ElevatorHopEdge;
import org.opentripplanner.street.model.edge.StreetEdge;
import org.opentripplanner.street.model.vertex.TransitStopVertex;
import org.opentripplanner.street.model.vertex.Vertex;
/**
* Render important information for debugging wheelchair access (street slopes and transit stop
* accessibility)
*
* @author hannesj
*/
public class WheelchairEdgeRenderer implements EdgeVertexRenderer {
private static final Color NO_WHEELCHAIR_COLOR = Color.RED;
private static final Color YES_WHEELCHAIR_COLOR = Color.GREEN;
private static final Color NO_WHEELCHAIR_INFORMATION_COLOR = Color.ORANGE;
private final ScalarColorPalette slopePalette;
public WheelchairEdgeRenderer(RoutingPreferences routingPreferences) {
this.slopePalette =
new DefaultScalarColorPalette(0.0, routingPreferences.wheelchair().maxSlope(), 1.0);
}
@Override
public Optional renderEdge(Edge e) {
if (e instanceof StreetEdge pse) {
if (!pse.isWheelchairAccessible()) {
return EdgeVisualAttributes.optional(NO_WHEELCHAIR_COLOR, "wheelchair=no");
} else {
return EdgeVisualAttributes.optional(
slopePalette.getColor(pse.getMaxSlope()),
String.format("%.02f", pse.getMaxSlope())
);
}
} else if (e instanceof ElevatorHopEdge ehe) {
if (!ehe.isWheelchairAccessible()) {
return EdgeVisualAttributes.optional(NO_WHEELCHAIR_COLOR, "wheelchair=no");
} else {
return EdgeVisualAttributes.optional(Color.GREEN, "elevator");
}
}
return Optional.empty();
}
@Override
public Optional renderVertex(Vertex v) {
if (v instanceof TransitStopVertex) {
var accessibility = ((TransitStopVertex) v).getStop().getWheelchairAccessibility();
var color =
switch (accessibility) {
case NO_INFORMATION -> NO_WHEELCHAIR_INFORMATION_COLOR;
case POSSIBLE -> YES_WHEELCHAIR_COLOR;
case NOT_POSSIBLE -> NO_WHEELCHAIR_COLOR;
};
return VertexVisualAttributes.optional(color, v.getDefaultName());
}
return Optional.empty();
}
@Override
public String getName() {
return "Wheelchair access";
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy