private PlainStreetEdge getEdgeForStreet( IntersectionVertex start, IntersectionVertex end, OSMWay way, long startNode, double length, StreetTraversalPermission permissions, LineString geometry, boolean back) { String id = "way " + way.getId() + " from " + startNode; id = unique(id); String name = way.getAssumedName(); if (customNamer != null) { name = customNamer.name(way, name); } if (name == null) { name = id; } boolean steps = "steps".equals(way.getTag("highway")); if (steps) { // consider the elevation gain of stairs, roughly length *= 2; } PlainStreetEdge street = new PlainStreetEdge(start, end, geometry, name, length, permissions, back); street.setId(id); if (!way.hasTag("name")) { street.setBogusName(true); } street.setStairs(steps); /* TODO: This should probably generalized somehow? */ if (way.isTagFalse("wheelchair") || (steps && !way.isTagTrue("wheelchair"))) { street.setWheelchairAccessible(false); } street.setSlopeOverride(wayPropertySet.getSlopeOverride(way)); if (customNamer != null) { customNamer.nameWithEdge(way, street); } return street; }