Skip to content

Commit

Permalink
Merge pull request #6497 from HSLdevcom/fix-classic-debug-layers
Browse files Browse the repository at this point in the history
Temporarily restore debug layers to classic debug UI and change grouping of safety layers in the new one
  • Loading branch information
tkalvas authored Mar 5, 2025
2 parents 1f55690 + 5d1b036 commit b552c7f
Show file tree
Hide file tree
Showing 14 changed files with 187 additions and 79 deletions.
4 changes: 2 additions & 2 deletions application/src/client/classic-debug/js/otp/core/Map.js
Original file line number Diff line number Diff line change
Expand Up @@ -62,14 +62,14 @@ otp.core.Map = otp.Class({
//debug layers can be enabled in config.js or as URL query:
//?debug_layers=true
if (otp.config.debug_layers === true) {
var url = otp.config.hostname + '/' + otp.config.restService + '/inspector/layers';
var url = otp.config.hostname + '/otp/debugrastertiles/layers';
$.ajax(url, {
dataType: 'JSON',
success: function(data) {
var layers = {};
data.layers.map(function(layer) {
this.layer_control.addOverlay(new L.TileLayer(
otp.config.hostname + '/' + otp.config.restService + '/inspector/tile/' + layer.key + '/{z}/{x}/{y}.png',
otp.config.hostname + '/otp/debugrastertiles/' + layer.key + '/{z}/{x}/{y}.png',
{ maxZoom : 22}), layer.name);
}, this_);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,4 +52,9 @@ public Optional<VertexVisualAttributes> renderVertex(Vertex v) {
}
return Optional.empty();
}

@Override
public String getName() {
return "Bike safety";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,11 @@ public void renderTile(TileRenderContext context) {
}
}

@Override
public String getName() {
return evRenderer.getName();
}

public interface EdgeVertexRenderer {
Comparator<Vertex> defaultVertexComparator = Comparator.comparing((Vertex v) ->
v instanceof StreetVertex
Expand All @@ -253,6 +258,13 @@ public interface EdgeVertexRenderer {
*/
Optional<VertexVisualAttributes> renderVertex(Vertex v);

/**
* Name of this tile Render which would be shown in frontend
*
* @return Name of tile render
*/
String getName();

default boolean hasEdgeSegments(Edge edge) {
return false;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,11 @@ public Optional<VertexVisualAttributes> renderVertex(Vertex v) {
}
}

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

@Override
public boolean hasEdgeSegments(Edge edge) {
return true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,4 +60,9 @@ public Optional<EdgeVisualAttributes> renderEdge(Edge e) {
public Optional<VertexVisualAttributes> renderVertex(Vertex v) {
return Optional.empty();
}

@Override
public String getName() {
return "No thru traffic";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ public interface TileRenderer {
/** Implementation of the tile rendering */
void renderTile(TileRenderContext context);

/** Gets descriptive name of this Tile Render */
String getName();

/**
* Context used for rendering a tile.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,4 +89,13 @@ public Envelope expandPixels(double marginXPixels, double marginYPixels) {
LOG.debug("Rendered tile at {} in {} ms", mapTile.bbox(), System.currentTimeMillis() - start);
return image;
}

/**
* Gets all renderers
* <p>
* Used to return list of renderers to client. Could be also used to show legend.
*/
public Map<String, TileRenderer> getRenderers() {
return renderers;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,11 @@ public Optional<VertexVisualAttributes> renderVertex(Vertex v) {
return Optional.empty();
}

@Override
public String getName() {
return "Traversal permissions";
}

private Color getColor(StreetTraversalPermission permissions) {
/*
* We use the trick that there are 3 main traversal modes (WALK, BIKE and CAR) and 3 color
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,4 +43,9 @@ public Optional<VertexVisualAttributes> renderVertex(Vertex v) {
}
return Optional.empty();
}

@Override
public String getName() {
return "Walk safety";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -64,4 +64,9 @@ public Optional<VertexVisualAttributes> renderVertex(Vertex v) {
}
return Optional.empty();
}

@Override
public String getName() {
return "Wheelchair access";
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package org.opentripplanner.ext.debugrastertiles.api.resource;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.opentripplanner.ext.debugrastertiles.TileRenderer;

/**
* @author mabu
*/
public class DebugLayersList {

public List<DebugLayer> layers;

DebugLayersList(Map<String, TileRenderer> renderers) {
layers = new ArrayList<>(renderers.size());
for (Map.Entry<String, TileRenderer> layerInfo : renderers.entrySet()) {
String layer_key = layerInfo.getKey();
TileRenderer layer = layerInfo.getValue();
layers.add(new DebugLayer(layer_key, layer.getName()));
}
}

private static class DebugLayer {

public String key;
public String name;

private DebugLayer(String layer_key, String layer_name) {
this.key = layer_key;
this.name = layer_name;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.CacheControl;
import jakarta.ws.rs.core.Context;
import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.Response;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
Expand Down Expand Up @@ -68,4 +69,16 @@ public Response tileGet(
cc.setNoCache(false);
return Response.ok(baos.toByteArray()).type(format.toString()).cacheControl(cc).build();
}

/**
* Returns all layers.
* <p>
* Used in the classic debug client to create a layer menu.
*/
@GET
@Path("layers")
@Produces(MediaType.APPLICATION_JSON)
public DebugLayersList getLayers() {
return new DebugLayersList(tileRendererManager.getRenderers());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,8 @@ public class DebugStyleSpec {
};
private static final String EDGES_GROUP = "Edges";
private static final String ELEVATION_GROUP = "Elevation";
private static final String SAFETY_GROUP = "Safety";
private static final String WALK_SAFETY_GROUP = "Walk safety";
private static final String BICYCLE_SAFETY_GROUP = "Bicycle safety";
private static final String STOPS_GROUP = "Stops";
private static final String VERTICES_GROUP = "Vertices";
private static final String PERMISSIONS_GROUP = "Permissions";
Expand Down Expand Up @@ -134,7 +135,8 @@ static StyleSpec build(
backgroundLayers(extraRasterSources),
wheelchair(edges),
noThruTraffic(edges),
safety(edges),
bicycleSafety(edges),
walkSafety(edges),
traversalPermissions(edges),
edges(edges),
elevation(edges, vertices),
Expand Down Expand Up @@ -300,10 +302,10 @@ private static List<StyleBuilder> elevation(VectorSourceLayer edges, VectorSourc
);
}

private static List<StyleBuilder> safety(VectorSourceLayer edges) {
private static List<StyleBuilder> bicycleSafety(VectorSourceLayer edges) {
return List.of(
StyleBuilder.ofId("bicycle-safety")
.group(SAFETY_GROUP)
.group(BICYCLE_SAFETY_GROUP)
.typeLine()
.vectorSourceLayer(edges)
.log2LineColorFromProperty("bicycleSafetyFactor", 80)
Expand All @@ -313,8 +315,23 @@ private static List<StyleBuilder> safety(VectorSourceLayer edges) {
.minZoom(6)
.maxZoom(MAX_ZOOM)
.intiallyHidden(),
StyleBuilder.ofId("bicycle-safety-text")
.vectorSourceLayer(edges)
.group(BICYCLE_SAFETY_GROUP)
.typeSymbol()
.lineText("bicycleSafetyFactor")
.textOffset(1)
.edgeFilter(EDGES_TO_DISPLAY)
.minZoom(17)
.maxZoom(MAX_ZOOM)
.intiallyHidden()
);
}

private static List<StyleBuilder> walkSafety(VectorSourceLayer edges) {
return List.of(
StyleBuilder.ofId("walk-safety")
.group(SAFETY_GROUP)
.group(WALK_SAFETY_GROUP)
.typeLine()
.vectorSourceLayer(edges)
.log2LineColorFromProperty("walkSafetyFactor", 80)
Expand All @@ -324,19 +341,9 @@ private static List<StyleBuilder> safety(VectorSourceLayer edges) {
.minZoom(6)
.maxZoom(MAX_ZOOM)
.intiallyHidden(),
StyleBuilder.ofId("bicycle-safety-text")
.vectorSourceLayer(edges)
.group(SAFETY_GROUP)
.typeSymbol()
.lineText("bicycleSafetyFactor")
.textOffset(1)
.edgeFilter(EDGES_TO_DISPLAY)
.minZoom(17)
.maxZoom(MAX_ZOOM)
.intiallyHidden(),
StyleBuilder.ofId("walk-safety-text")
.vectorSourceLayer(edges)
.group(SAFETY_GROUP)
.group(WALK_SAFETY_GROUP)
.typeSymbol()
.lineText("walkSafetyFactor")
.textOffset(1)
Expand Down
Loading

0 comments on commit b552c7f

Please sign in to comment.