コード例 #1
0
    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;
    }