@Override public Map<String, String> getTags() { return subEdge().getTags(); }
@Override public Map<String, String> getTags() { return this.getSubEdge().getTags(); }
/** * Collects tags from given roads' edges. Theoretically edges correspond to same OSM way, so * they should have the same tags. * * @param roads * Roads to use for tag extraction * @return Tags */ private Map<String, String> collectTags(final List<TemporaryRoad> roads) { final Map<String, String> tags = new HashMap<>(); roads.forEach(road -> road.getMembers().forEach(edge -> tags.putAll(edge.getTags()))); return tags; }
public static AtlasPrimitiveEdge from(final Edge edge) { return new AtlasPrimitiveEdge(edge.getIdentifier(), edge.asPolyLine(), edge.getTags()); }
public static CompleteEdge from(final Edge edge) { return new CompleteEdge(edge.getIdentifier(), edge.asPolyLine(), edge.getTags(), edge.start().getIdentifier(), edge.end().getIdentifier(), edge.relations().stream().map(Relation::getIdentifier).collect(Collectors.toSet())); }
/** * @return an {@link Atlas} made up of {@link Node}s and {@link Edge}s comprising this * {@link BigNode}, in order to run routing algorithms on it. */ private Atlas buildBigNodeAtlas() { final Set<Edge> edges = edges(); final Set<Node> extendedNodes = new HashSet<>(); edges.forEach(edge -> { extendedNodes.add(edge.start()); extendedNodes.add(edge.end()); }); final PackedAtlasBuilder builder = new PackedAtlasBuilder() .withSizeEstimates(new AtlasSize(edges.size(), extendedNodes.size(), 0, 0, 0, 0)); extendedNodes.forEach( node -> builder.addNode(node.getIdentifier(), node.getLocation(), node.getTags())); edges.forEach( edge -> builder.addEdge(edge.getIdentifier(), edge.asPolyLine(), edge.getTags())); return builder.get(); }
private void writeEdgesToBuilder(final Atlas atlas, final ProtoAtlas.Builder protoAtlasBuilder) { long numberOfEdges = 0; for (final Edge edge : atlas.edges()) { final ProtoEdge.Builder protoEdgeBuilder = ProtoEdge.newBuilder(); protoEdgeBuilder.setId(edge.getIdentifier()); final List<ProtoLocation> protoLocations = edge.asPolyLine().stream() .map(ProtoAtlasBuilder.PROTOLOCATION_CONVERTER::backwardConvert) .collect(Collectors.toList()); protoEdgeBuilder.addAllShapePoints(protoLocations); final Map<String, String> tags = edge.getTags(); protoEdgeBuilder .addAllTags(ProtoAtlasBuilder.PROTOTAG_LIST_CONVERTER.backwardConvert(tags)); numberOfEdges++; protoAtlasBuilder.addEdges(protoEdgeBuilder.build()); } protoAtlasBuilder.setNumberOfEdges(numberOfEdges); }
@Test public void testNotMovingTooFast() { Assert.assertEquals(1, this.dynamicAtlas.numberOfEdges()); final Iterable<Edge> edgesIntersecting = this.dynamicAtlas .edgesIntersecting(this.dynamicAtlas.edges().iterator().next().bounds()); Assert.assertEquals(1, Iterables.size(edgesIntersecting)); Assert.assertEquals("primary", edgesIntersecting.iterator().next().getTags().get("highway")); } }
subAtlas1.edge(123456789120001L).getTags().forEach((key, value) -> Assert.assertTrue(multiAtlas.edge(123456789120001L).getTags().containsKey(key)); Assert.assertEquals(multiAtlas.edge(123456789120001L).getTags().get(key), value); Assert.assertTrue(multiAtlas.edge(123456789120002L).getTags().containsKey(key)); Assert.assertEquals(multiAtlas.edge(123456789120002L).getTags().get(key), value); }); subAtlas2.edge(123456789120001L).getTags().forEach((key, value) -> Assert.assertTrue(multiAtlas.edge(123456789120001L).getTags().containsKey(key)); Assert.assertEquals(multiAtlas.edge(123456789120001L).getTags().get(key), value); Assert.assertTrue(multiAtlas.edge(123456789120002L).getTags().containsKey(key)); Assert.assertEquals(multiAtlas.edge(123456789120002L).getTags().get(key), value); }); subAtlas2.edge(123456789120002L).getTags().forEach((key, value) -> Assert.assertTrue(multiAtlas.edge(123456789120001L).getTags().containsKey(key)); Assert.assertEquals(multiAtlas.edge(123456789120001L).getTags().get(key), value); Assert.assertTrue(multiAtlas.edge(123456789120002L).getTags().containsKey(key)); Assert.assertEquals(multiAtlas.edge(123456789120002L).getTags().get(key), value); });
node -> builder.addNode(node.getIdentifier(), node.getLocation(), node.getTags())); atlas.edges().forEach( edge -> builder.addEdge(edge.getIdentifier(), edge.asPolyLine(), edge.getTags())); atlas.areas().forEach( area -> builder.addArea(area.getIdentifier(), area.asPolygon(), area.getTags()));
@Test public void testFull() { final Atlas atlas = this.rule.getAtlas(); final Edge source = atlas.edge(3); final CompleteEdge result = CompleteEdge.from(source); Assert.assertEquals(source.getIdentifier(), result.getIdentifier()); Assert.assertEquals(source.bounds(), result.bounds()); Assert.assertEquals(source.asPolyLine(), result.asPolyLine()); Assert.assertEquals(source.start().getIdentifier(), result.start().getIdentifier()); Assert.assertEquals(source.end().getIdentifier(), result.end().getIdentifier()); Assert.assertEquals(source.getTags(), result.getTags()); Assert.assertEquals( source.relations().stream().map(Relation::getIdentifier) .collect(Collectors.toSet()), result.relations().stream().map(Relation::getIdentifier) .collect(Collectors.toSet())); }
logger.info("Got Edge connected Nodes {}", connectedNodes.stream() .map(aNode -> aNode.getIdentifier()).collect(Collectors.toList())); final Map<String, String> edgeTags = edge.getTags(); logger.info("Got Edge tags {}", edgeTags); logger.info("{}", edge);
matchedEdge.getTags());
Assert.assertEquals(1, node12345.outEdges().size()); Assert.assertEquals("edge98", edge98.getTags().get("name"));