All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.opentripplanner.ext.debugrastertiles.WalkSafetyEdgeRenderer Maven / Gradle / Ivy

The newest version!
package org.opentripplanner.ext.debugrastertiles;

import java.awt.Color;
import java.util.Optional;
import org.opentripplanner.ext.debugrastertiles.EdgeVertexTileRenderer.EdgeVertexRenderer;
import org.opentripplanner.ext.debugrastertiles.EdgeVertexTileRenderer.EdgeVisualAttributes;
import org.opentripplanner.ext.debugrastertiles.EdgeVertexTileRenderer.VertexVisualAttributes;
import org.opentripplanner.street.model.edge.Edge;
import org.opentripplanner.street.model.edge.StreetEdge;
import org.opentripplanner.street.model.vertex.IntersectionVertex;
import org.opentripplanner.street.model.vertex.Vertex;
import org.opentripplanner.street.search.TraverseMode;

/**
 * Render walk safety for each edge using a color palette. Display the walk safety factor as label.
 */
public class WalkSafetyEdgeRenderer implements EdgeVertexRenderer {

  private final ScalarColorPalette palette = new DefaultScalarColorPalette(1.0, 3.0, 10.0);

  public WalkSafetyEdgeRenderer() {}

  @Override
  public Optional renderEdge(Edge e) {
    if (e instanceof StreetEdge pse) {
      if (pse.getPermission().allows(TraverseMode.WALK)) {
        double walkSafety = pse.getWalkSafetyFactor();
        return EdgeVisualAttributes.optional(
          palette.getColor(walkSafety),
          "%.02f".formatted(walkSafety)
        );
      } else {
        return EdgeVisualAttributes.optional(Color.LIGHT_GRAY, "no walking");
      }
    }
    return Optional.empty();
  }

  @Override
  public Optional renderVertex(Vertex v) {
    if (v instanceof IntersectionVertex) {
      return VertexVisualAttributes.optional(Color.DARK_GRAY, null);
    }
    return Optional.empty();
  }

  @Override
  public String getName() {
    return "Walk safety";
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy