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

org.opentripplanner.ext.debugrastertiles.NoThruTrafficEdgeRenderer 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.Vertex;

/**
 * Render no thru traffic restrictions for each street edge, along with a label describing the
 * restriction.
 */
public class NoThruTrafficEdgeRenderer implements EdgeVertexRenderer {

  private static final Color[] colors = {
    new Color(200, 200, 200), // no limitations = light gray
    new Color(200, 200, 0), // no walk thru traffic = yellow
    new Color(0, 200, 200), // no bike thru = cyan
    new Color(0, 200, 0), // no walk & bike thru = green
    new Color(0, 0, 200), // no car thru = blue
    new Color(200, 100, 0), // no car & walk thru = orange
    new Color(200, 0, 200), // no car & bike thru = purple
    new Color(200, 0, 0), // no for all = red
  };

  public NoThruTrafficEdgeRenderer() {}

  @Override
  public Optional renderEdge(Edge e) {
    if (e instanceof StreetEdge pse) {
      int colorIndex = 0;

      String label = "";

      if (pse.isWalkNoThruTraffic()) {
        label = " walk ";
        colorIndex += 1;
      }
      if (pse.isBicycleNoThruTraffic()) {
        label += " bike";
        colorIndex += 2;
      }
      if (pse.isMotorVehicleNoThruTraffic()) {
        label += " car";
        colorIndex += 4;
      }
      if (!label.isEmpty()) {
        label = "No" + label + " thru traffic";
      }

      return EdgeVisualAttributes.optional(colors[colorIndex], label);
    }
    return Optional.empty();
  }

  @Override
  public Optional renderVertex(Vertex v) {
    return Optional.empty();
  }

  @Override
  public String getName() {
    return "No thru traffic";
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy