Skip to content

Commit a17feb0

Browse files
authored
Merge pull request #9 from remix/feature/enable-miniature-narrow-gauge
feat: enable narrow gauge and miniature routes
2 parents 619dc73 + 415a6eb commit a17feb0

4 files changed

Lines changed: 28 additions & 4 deletions

File tree

src/main/java/de/geofabrik/railway_routing/ev/RailwayClass.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* This enum defines the railway class of an edge. It maps the railway=* key of OSM to an enum. All edges that do not fit get OTHER as value.
88
*/
99
public enum RailwayClass {
10-
OTHER, RAIL, SUBWAY, TRAM, LIGHT_RAIL, FUNICULAR, CONSTRUCTION, MONORAIL, PROPOSED;
10+
OTHER, RAIL, SUBWAY, TRAM, LIGHT_RAIL, FUNICULAR, CONSTRUCTION, MONORAIL, PROPOSED, NARROW_GAUGE, MINIATURE;
1111

1212
public static final String KEY = "railway_class";
1313

src/main/java/de/geofabrik/railway_routing/parsers/RailAccessParser.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public class RailAccessParser extends AbstractAccessParser {
1616

1717
public static final String DEFAULT_NAME = "rail";
1818
private static final Set<String> ALLOWED_RAIL_TYPES = Set.of(
19-
"rail", "light_rail", "tram", "subway", "construction", "proposed", "funicular", "monorail"
19+
"rail", "light_rail", "tram", "subway", "construction", "proposed", "funicular", "monorail", "narrow_gauge", "miniature"
2020
);
2121

2222
public RailAccessParser(BooleanEncodedValue accessEnc) {

src/test/java/de/geofabrik/railway_routing/parsers/OSMRailwayClassParserTest.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ void railwayClass() {
5757
way = new ReaderWay(29L);
5858
way.setTag("railway", "narrow_gauge");
5959
parser.handleWayTags(edgeId, edgeIntAccess, way, relFlags);
60-
assertEquals(RailwayClass.OTHER, classEnc.getEnum(false, edgeId, edgeIntAccess));
60+
assertEquals(RailwayClass.NARROW_GAUGE, classEnc.getEnum(false, edgeId, edgeIntAccess));
6161

6262
edgeIntAccess = new ArrayEdgeIntAccess(1);
6363
way = new ReaderWay(29L);
@@ -88,6 +88,12 @@ void railwayClass() {
8888
way.setTag("railway", "monorail");
8989
parser.handleWayTags(edgeId, edgeIntAccess, way, relFlags);
9090
assertEquals(RailwayClass.MONORAIL, classEnc.getEnum(false, edgeId, edgeIntAccess));
91+
92+
edgeIntAccess = new ArrayEdgeIntAccess(1);
93+
way = new ReaderWay(29L);
94+
way.setTag("railway", "miniature");
95+
parser.handleWayTags(edgeId, edgeIntAccess, way, relFlags);
96+
assertEquals(RailwayClass.MINIATURE, classEnc.getEnum(false, edgeId, edgeIntAccess));
9197
}
9298

9399
}

src/test/java/de/geofabrik/railway_routing/parsers/RailAccessParserTest.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,29 @@ public void testRejectRoad() {
6666
}
6767

6868
@Test
69-
public void testRejectsNarrowGauge() {
69+
public void testAcceptsNarrowGauge() {
7070
PMap properties = new PMap();
7171
RailAccessParser e = createAccessParser(createEncodingManager(), properties);
7272
ReaderWay way = new ReaderWay(1);
7373
way.setTag("railway", "narrow_gauge");
74+
assertEquals(e.getAccess(way), WayAccess.WAY);
75+
}
76+
77+
@Test
78+
public void testAcceptsMiniature() {
79+
PMap properties = new PMap();
80+
RailAccessParser e = createAccessParser(createEncodingManager(), properties);
81+
ReaderWay way = new ReaderWay(1);
82+
way.setTag("railway", "miniature");
83+
assertEquals(e.getAccess(way), WayAccess.WAY);
84+
}
85+
86+
@Test
87+
public void testRejectsAbandoned() {
88+
PMap properties = new PMap();
89+
RailAccessParser e = createAccessParser(createEncodingManager(), properties);
90+
ReaderWay way = new ReaderWay(1);
91+
way.setTag("railway", "abandoned");
7492
assertEquals(WayAccess.CAN_SKIP, e.getAccess(way));
7593
}
7694
}

0 commit comments

Comments
 (0)