private void handle(final PackedAtlasBuilder builder, final Relation... relations) { final FeatureIDGenerator relationIDGenerator = new FeatureIDGenerator(); for (final Relation relation : relations) { final RelationBean bean = new RelationBean(); for (final Member member : relation.members()) { bean.addItem(Long.parseLong(member.id()), member.role(), Enum.valueOf(ItemType.class, member.type().toUpperCase())); } final long identifier = relationIDGenerator.nextId(relation.id()); builder.addRelation(identifier, identifier, bean, parseTags(relation.tags())); } }
@Loc(value = POINT_6_LOCATION), @Loc(value = POINT_7_LOCATION) }), }, relations = { @Relation(id = "887654321", members = { @Member(id = "123456789120000", type = "edge", role = "") }) }) private Atlas oneWaySubAtlas1WithInconsistentRoadsAndARelation; @Loc(value = POINT_7_LOCATION) }) }, relations = { @Relation(id = "987654321", members = { @Member(id = "123456789120001", type = "edge", role = "some role"), @Member(id = "123456789120002", type = "edge", role = "some role") }) }) @Loc(value = POINT_2_LOCATION), @Loc(value = POINT_3_LOCATION) }) }, relations = { @Relation(id = "887654321", members = { @Member(id = "123456789120001", type = "edge", role = "") }) }) private Atlas oneWaySubAtlas1From1To3WithRelations; @Loc(value = POINT_3_LOCATION) }) }, relations = { @Relation(id = "987654321", members = { @Member(id = "123456789120001", type = "edge", role = "some role"), @Member(id = "123456789120002", type = "edge", role = "some role") }) })
@Loc(value = TEST_2), @Loc(value = TEST_4), @Loc(value = TEST_3) }) }, relations = { @Relation(members = { @Member(id = "1000000", type = "area", role = "outer") }, tags = { "type=multipolygon", "building=yes", "building:levels=5" }) }) @Loc(value = TEST_2), @Loc(value = TEST_4), @Loc(value = TEST_3) }) }, relations = { @Relation(members = { @Member(id = "1000000", type = "area", role = "outer") }, tags = { "type=multipolygon", "building=yes", "building:levels=5", "building:levels=8", "building:min_level=5" }) }, relations = { @Relation(members = { @Member(id = "1000000", type = "area", role = "outer") }, tags = { "type=multipolygon", "building=yes", "building:levels=5" }) }) "building:levels=8", "building:min_level=5" }) }, relations = { @Relation(members = { @Member(id = "1000000", type = "area", role = "outer") }, tags = { "type=multipolygon", "building=yes", "building:levels=5", @Relation(members = { @Member(id = "1000000", type = "area", role = "outline"), @Member(id = "2000000", type = "area", role = "part") }, tags = { "type=building" }) })
@Loc(value = TEST_13), @Loc(value = TEST_5), @Loc(value = TEST_11) }) }, relations = { @Relation(id = "123", members = { @Member(id = "1000", type = "line", role = "outer") }, tags = { "landuse=military", "type=multipolygon" }) }) @Loc(value = TEST_11) }) }, relations = { @Relation(id = "123", members = { @Member(id = "1000", type = "area", role = "na") }) }) private Atlas accessNoInHighwayEdgesInRelation;
@Relation(id = "31", tags = { "type=relation" }, members = { @Relation(id = "32", tags = { "type=relation" }, members = { @Relation(id = "33", tags = { "type=relation" }, members = { @Relation(id = "1000", tags = { "type=relation" }, members = { @Relation(id = "31", tags = { "type=relation" }, members = { @Relation(id = "32", tags = { "type=relation" }, members = { @Relation(id = "33", tags = { "type=relation" }, members = { @Relation(id = "34", tags = { "type=relation" }, members = { @Relation(id = "31", tags = { "type=relation" }, members = { @Relation(id = "32", tags = { "type=relation" }, members = { @Relation(id = "33", tags = { "type=relation" }, members = { @Relation(id = "31", tags = { "type=relation" }, members = { @Relation(id = "32", tags = { "type=relation" }, members = { @Relation(id = "33", tags = { "type=relation" }, members = { @Relation(id = "31", tags = { "type=relation" }, members = {
@Relation(id = "1", tags = { "type=relation" }, members = { @Relation(id = "2", tags = { "type=relation" }, members = { @Relation(id = "3", tags = { "type=relation" }, members = { @Relation(id = "1", tags = { "type=relation" }, members = { @Relation(id = "2", tags = { "type=relation" }, members = { @Relation(id = "3", tags = { "type=relation" }, members = { @Relation(id = "1", tags = { "type=relation" }, members = { @Relation(id = "3", tags = { "type=relation" }, members = { @Relation(id = "2", tags = { "type=relation" }, members = { @Relation(id = "3", tags = { "type=relation" }, members = { @Relation(id = "31", tags = { "type=relation" }, members = { @Relation(id = "32", tags = { "type=relation" }, members = { @Relation(id = "33", tags = { "type=relation" }, members = { @Relation(id = "34", tags = { "type=relation" }, members = { @Relation(id = "35", tags = { "type=relation" }, members = {
@Relation(tags = { "type=multipolygon", "building=yes" }, members = { @Member(id = "108768000000", role = "inner", type = "line") }) @Relation(tags = { "type=multipolygon", "building=yes" }, members = { @Member(id = "108768000000", role = "inner", type = "line") }) @Relation(tags = { "type=multipolygon", "building=yes" }, members = { @Member(id = "108768000000", role = "outer", type = "line") }) @Relation(tags = { "type=multipolygon", "building=yes" }, members = { @Member(id = "108768000000", role = "outer", type = "line") }) @Relation(tags = { "type=multipolygon", "building=yes" }, members = { @Member(id = "108768000000", role = "outer", type = "line"), @Member(id = "108769000000", role = "outer", type = "line") }) @Relation(tags = { "type=multipolygon", "building=yes" }, members = { @Member(id = "108768000000", role = "inner", type = "line"), @Member(id = "108769000000", role = "outer", type = "line") }) @Relation(tags = { "type=multipolygon", "building=yes" }, members = { @Member(id = "108768000000", role = "inner", type = "line"), @Member(id = "108769000000", role = "outer", type = "line") }) @Relation(tags = { "type=multipolygon", "building=yes" }, members = { @Member(id = "108768000000", role = "outer", type = "line"), @Member(id = "108769000000", role = "inner", type = "line") }) @Relation(tags = { "type=multipolygon", "building=yes" }, members = {
@Relation(id = "214805000000", tags = { "type=multipolygon", "leisure=park" }, members = { @Member(id = "214777000000", role = "outer", type = "line"), @Relation(tags = { "type=multipolygon", "leisure=park" }, members = { @Member(id = "214599000000", role = "outer", type = "line"), @Member(id = "214590000000", role = "outer", type = "line"), @Relation(id = "214805000000", tags = { "type=multipolygon", "natural=water" }, members = { @Member(id = "106033000000", role = "outer", type = "line"), @Relation(id = "214805000000", tags = { "type=multipolygon", "natural=water" }, members = { @Member(id = "106034000000", role = "outer", type = "line"), @Relation(tags = { "type=multipolygon", "building=yes" }, members = { @Member(id = "108768000000", role = "outer", type = "line"), @Member(id = "108770000000", role = "inner", type = "line") }) @Relation(id = "3", tags = { "bugs=no" }, members = { @Member(id = "1", role = "member", type = "point") }), @Relation(id = "4", tags = { "bugs=no" }, members = { @Member(id = "2", role = "member", type = "point") }), @Relation(id = "5", tags = { "bugs=no" }, members = { @Member(id = "3", role = "member", type = "relation"), @Member(id = "4", role = "member", type = "relation") }) })
@Loc(value = TEST_3) }, tags = { "highway=road", "name=Smith" }) }, relations = { @Relation(id = "123", members = { @Member(id = "12", type = "edge", role = "street"), @Member(id = "24", type = "point", role = "house"), @Loc(value = TEST_3) }, tags = { "highway=road" }) }, relations = { @Relation(id = "123", members = { @Member(id = "12", type = "edge", role = "street"), @Member(id = "24", type = "point", role = "house"), @Loc(value = TEST_3) }, tags = { "highway=road" }) }, relations = { @Relation(id = "123", members = { @Member(id = "12", type = "edge", role = "street"), @Member(id = "23", type = "edge", role = "street") }) })
@Relation(id = "1", tags = { "type=restriction", "restriction=no_left_turn" }, members = { @Member(id = "0", role = "from", type = "edge"), @Member(id = "2", role = "via", type = "node"), @Member(id = "1", role = "to", type = "edge") }), @Relation(id = "2", tags = { "type=half_inside" }, members = { @Member(id = "0", role = "inside", type = "area"), @Member(id = "1", role = "outside", type = "line") }), @Relation(id = "3", tags = { "type=outside" }, members = { @Member(id = "1", role = "outside", type = "area"), @Member(id = "1", role = "outside", type = "line") }), @Relation(id = "4", tags = { "type=inside_because_of_relation_inside" }, members = { @Member(id = "1", role = "inside", type = "relation"), @Member(id = "1", role = "outside", type = "line") }), @Relation(id = "5", tags = { "type=inside_because_of_level_2_relation_inside" }, members = { @Member(id = "4", role = "inside", type = "relation") }), @Relation(id = "6", tags = { "type=inside-fully" }, members = { @Member(id = "4", role = "inside", type = "node"), @Member(id = "2", role = "inside", type = "edge") }), @Relation(id = "7", tags = { "type=single-member-inside" }, members = { @Member(id = "0", role = "inside", type = "edge"), @Member(id = "2", role = "inside", type = "edge") }) @Relation(id = "0", tags = { "type=outside" }, members = { @Member(id = "1", role = "to", type = "node"), @Member(id = "4", role = "via", type = "node") })
@Loc(value = LOCATION_TEN), @Loc(value = LOCATION_EIGHTEEN), @Loc(value = LOCATION_SEVENTEEN) }) }, relations = { @Relation(id = "39190", members = { @Member(id = "39010", type = "area", role = "outer"), @Member(id = "38989", type = "area", role = "inner") }, tags = { "type=multipolygon", "amenity=SCHOOL" }), @Relation(id = "39990", members = { @Member(id = "38987", type = "area", role = "outer") }, tags = { "type=boundary", "landuse=CEMETERY" }) }) @Loc(value = LOCATION_SEVEN) }, tags = { "highway=road" }) }, relations = { @Relation(id = "89765", members = { @Member(id = "12333", type = "edge", role = RelationTypeTag.RESTRICTION_ROLE_FROM), @Member(id = "21001", type = "node", role = RelationTypeTag.RESTRICTION_ROLE_VIA), @Loc(value = LOCATION_FOUR) }, tags = { "amenity=SCHOOL" }) }, relations = { @Relation(id = "39190", members = { @Member(id = "39010", type = "area", role = "outer"), @Member(id = "38989", type = "area", role = "inner") }, tags = { "type=multipolygon", "amenity=PARKING" }), @Relation(id = "39990", members = { @Member(id = "38987", type = "area", role = "outer") }, tags = { "type=boundary",
@Loc(value = TEST_1) }) }, relations = { @Relation(id = "1001", members = { @Member(id = "127001", type = "area", role = RelationTypeTag.MULTIPOLYGON_ROLE_INNER), @Member(id = "127002", type = "area", role = RelationTypeTag.MULTIPOLYGON_ROLE_OUTER) }, tags = { @Loc(value = TEST_1) }) }, relations = { @Relation(id = "1001", members = { @Member(id = "127001", type = "area", role = RelationTypeTag.MULTIPOLYGON_ROLE_INNER), @Member(id = "127002", type = "area", role = RelationTypeTag.MULTIPOLYGON_ROLE_OUTER) }, tags = { @Loc(value = TEST_1) }) }, relations = { @Relation(id = "1001", members = { @Member(id = "127001", type = "area", role = RelationTypeTag.MULTIPOLYGON_ROLE_INNER), @Member(id = "127002", type = "area", role = RelationTypeTag.MULTIPOLYGON_ROLE_OUTER) }, tags = { @Loc(value = TEST_1) }) }, relations = { @Relation(id = "1001", members = { @Member(id = "127001", type = "area", role = RelationTypeTag.MULTIPOLYGON_ROLE_INNER), @Member(id = "127002", type = "area", role = RelationTypeTag.MULTIPOLYGON_ROLE_OUTER) }, tags = { relations = { @Relation(id = "1001", members = { @Member(id = "127002", type = "area", role = RelationTypeTag.MULTIPOLYGON_ROLE_INNER), @Member(id = "127001", type = "area", role = RelationTypeTag.MULTIPOLYGON_ROLE_OUTER) }, tags = {
@Relation(id = "1", tags = { "type=route" }, members = { @Member(id = "0", role = "inside", type = "edge"), @Member(id = "1", role = "touchingEdge", type = "edge") }), @Relation(id = "2", tags = { "type=route" }, members = { @Member(id = "1", role = "touchingEdge", type = "edge"), @Member(id = "4", role = "outside", type = "edge") }), @Relation(id = "3", tags = { "type=route" }, members = { @Member(id = "2", role = "extendingOutside", type = "edge"), @Member(id = "4", role = "outside", type = "edge") }), @Relation(id = "4", tags = { "type=route" }, members = { @Member(id = "3", role = "running Through", type = "edge"), @Member(id = "4", role = "outside", type = "edge") }),
relations = { @Relation(id = "123", members = { @Member(id = "12", type = "edge", role = RelationTypeTag.RESTRICTION_ROLE_FROM), @Member(id = "2", type = "node", role = RelationTypeTag.RESTRICTION_ROLE_VIA), relations = { @Relation(id = "123", members = { @Member(id = "12", type = "edge", role = RelationTypeTag.RESTRICTION_ROLE_FROM) }, tags = { "restriction=no_u_turn" }) }) relations = { @Relation(id = "123", members = { @Member(id = "12", type = "edge", role = RelationTypeTag.MULTIPOLYGON_ROLE_INNER) }, tags = { "restriction=no_u_turn", "type=multipolygon" }) }) relations = { @Relation(id = "123", members = { @Member(id = "12", type = "edge", role = RelationTypeTag.MULTIPOLYGON_ROLE_OUTER) }, tags = { "restriction=no_u_turn", "type=multipolygon" }) }) relations = { @Relation(id = "123", members = { @Member(id = "12", type = "edge", role = RelationTypeTag.MULTIPOLYGON_ROLE_INNER), @Member(id = "2", type = "node", role = RelationTypeTag.MULTIPOLYGON_ROLE_OUTER), @Relation(id = "123", members = { @Member(id = "12", type = "edge", role = RelationTypeTag.RESTRICTION_ROLE_FROM), @Member(id = "2", type = "node", role = RelationTypeTag.RESTRICTION_ROLE_VIA), @Member(id = "23", type = "edge", role = RelationTypeTag.RESTRICTION_ROLE_TO) }, tags = { "restriction=no_u_turn" }), @Relation(id = "1231", members = { @Member(id = "123", type = "relation", role = RelationTypeTag.RESTRICTION_ROLE_FROM) }, tags = { "restriction=no_u_turn" }) })
@Relation(id = "1", tags = { "type=restriction", "restriction=no_left_turn" }, members = { @Member(id = "102", role = "from", type = "edge"), @Relation(id = "1", tags = { "type=restriction", "restriction=only_left_turn" }, members = { @Member(id = "102", role = "from", type = "edge"), @Relation(id = "1", tags = { "type=restriction", "restriction=no_u_turn" }, members = { @Member(id = "102", role = "from", type = "edge"), @Relation(id = "1", tags = { "type=restriction", "restriction=no_left_turn" }, members = { @Member(id = "102", role = "from", type = "edge"),
@Loc(value = ONE) }, tags = { "highway=road" }) }, relations = { @Relation(id = "123", members = { @Member(id = "12", type = "edge", role = RelationTypeTag.RESTRICTION_ROLE_FROM), @Member(id = "2", type = "node", role = RelationTypeTag.RESTRICTION_ROLE_VIA), @Loc(value = ONE) }, tags = { "highway=road" }) }, relations = { @Relation(id = "123", members = { @Member(id = "12", type = "edge", role = RelationTypeTag.RESTRICTION_ROLE_FROM), @Member(id = "2", type = "node", role = RelationTypeTag.RESTRICTION_ROLE_VIA), @Loc(value = TWO) }, tags = { "highway=road", "oneway=true" }) }, relations = { @Relation(id = "123", members = { @Member(id = "12", type = "edge", role = RelationTypeTag.RESTRICTION_ROLE_FROM), @Member(id = "2", type = "node", role = RelationTypeTag.RESTRICTION_ROLE_VIA),
@Relation(id = "5", members = { @Member(id = "2", role = "subarea", type = "area"), @Member(id = "3", role = "outer", type = "line"), "type=boundary", "boundary=administrative", "admin_level=3", "name=state5" }), @Relation(id = "6", members = { @Member(id = "1", role = "outer", type = "area"), @Member(id = "5", role = "subarea", type = "relation") }, tags = { "name=country6" }), @Relation(id = "8", members = { @Member(id = "3", role = "outer", type = "line"), @Member(id = "7", role = "outer", type = "line") }, tags = { "type=boundary", "boundary=administrative", "admin_level=5", "name=city8" }), @Relation(id = "9", members = { @Member(id = "8", role = "subarea", type = "relation"), @Member(id = "3", role = "outer", type = "line"),
@Relation(id = "1", tags = { "type=restriction", "restriction=no_left_turn" }, members = { @Member(id = "0", role = "from", type = "edge"), @Member(id = "2", role = "via", type = "node"), @Member(id = "1", role = "to", type = "edge") }), @Relation(id = "2", tags = { "type=half_inside" }, members = { @Member(id = "0", role = "inside", type = "area"), @Member(id = "1", role = "outside", type = "line") }), @Relation(id = "3", tags = { "type=outside" }, members = { @Member(id = "1", role = "outside", type = "area"), @Member(id = "1", role = "outside", type = "line") }), @Relation(id = "5", tags = { "type=inside_because_of_relation_inside" }, members = { @Member(id = "1", role = "inside", type = "relation"), @Member(id = "1", role = "outside", type = "line") }), @Relation(id = "4", tags = { "type=inside_because_of_level_2_relation_inside" }, members = { @Member(id = "5", role = "inside", type = "relation") })
@Relation(id = "3", tags = { "type=outside" }, members = { @Member(id = "1", role = "outside", type = "area") }), @Relation(id = "4", tags = { "type=inside" }, members = { @Member(id = "1", role = "outside", type = "area"), @Member(id = "3", role = "outside", type = "relation") }) @Relation(id = "4", tags = { "type=inside" }, members = { @Member(id = "2", role = "outside", type = "area") }), @Relation(id = "3", tags = { "type=outside" }, members = { @Member(id = "2", role = "outside", type = "area"), @Member(id = "4", role = "outside", type = "relation") })
@Relation(id = "1", tags = { "type=restriction", "restriction=no_left_turn" }, members = { @Member(id = "0", role = "from", type = "edge"),