public ElementGeometry create(Node node) { return new ElementGeometry(node.getPosition()); }
@Override public List<LatLon> getNodePositions(long wayId) { List<Long> nodeIds = ways.get((int) wayId).getNodeIds(); List<LatLon> result = new ArrayList<>(); for(Long nodeId : nodeIds) { result.add(nodes.get(nodeId.intValue()).getPosition()); } return result; }
private static Element copyElement(Element e, int newVersion) { if(e == null) return null; Map<String,String> tagsCopy = new HashMap<>(); if(e.getTags() != null) tagsCopy.putAll(e.getTags()); if(e instanceof Node) { return new OsmNode(e.getId(), newVersion, ((Node)e).getPosition(), tagsCopy); } if(e instanceof Way) { return new OsmWay(e.getId(), newVersion, new ArrayList<>(((Way)e).getNodeIds()), tagsCopy); } if(e instanceof Relation) { return new OsmRelation(e.getId(), newVersion, new ArrayList<>(((Relation)e).getMembers()), tagsCopy); } return null; }
@Test public void createForSimpleAreaWay() { ElementGeometry geom = createCreator().create(W2); assertNotNull(geom.polygons); assertEquals(1,geom.polygons.size()); List<LatLon> polygon = geom.polygons.get(0); for(int i=0; i<W2.getNodeIds().size(); ++i) { LatLon shouldBe = nodes.get(W2.getNodeIds().get(i).intValue()).getPosition(); assertEquals(shouldBe, polygon.get(i)); } }
@Test public void createForSimpleNonAreaWay() { ElementGeometry geom = createCreator().create(W0); assertNotNull(geom.polylines); assertEquals(1,geom.polylines.size()); assertEquals(W0.getNodeIds().size(), geom.polylines.get(0).size()); List<LatLon> polyline = geom.polylines.get(0); for(int i=0; i<W0.getNodeIds().size(); ++i) { LatLon shouldBe = nodes.get(W0.getNodeIds().get(i).intValue()).getPosition(); assertEquals(shouldBe, polyline.get(i)); } }
@Override protected void executeInsert(Node node) { insert.bindLong(1, node.getId()); insert.bindLong(2, node.getVersion()); insert.bindDouble(3, node.getPosition().getLatitude()); insert.bindDouble(4, node.getPosition().getLongitude()); if(node.getTags() != null) { HashMap<String, String> map = new HashMap<>(node.getTags()); insert.bindBlob(5, serializer.toBytes(map)); } else { insert.bindNull(5); } insert.executeInsert(); insert.clearBindings(); }
private void checkEqual(Node node, Node dbNode) { assertEquals(node.getId(), dbNode.getId()); assertEquals(node.getVersion(), dbNode.getVersion()); assertEquals(node.getPosition(), dbNode.getPosition()); assertEquals(node.getTags(), dbNode.getTags()); } }
@Test public void node() { LatLon pos = new OsmLatLon(51.7463194, 0.2428181); String xml = " <node id='5' version='1' lat='" + pos.getLatitude() + "' lon='" + pos.getLongitude() + "'/>"; Element e = parseOne(xml, null); assertTrue(e instanceof Node); Node node = (Node) e; assertEquals(pos, node.getPosition()); assertEquals(5, node.getId()); assertEquals(1, node.getVersion()); assertNull(node.getTags()); }
private void writeNodeContents(Node node) throws IOException { LatLon position = node.getPosition(); attribute("lat", position.getLatitude()); attribute("lon", position.getLongitude()); }
public void testDeletedNode() { String xml = "<node id=\"5\" visible=\"false\" version=\"4\" changeset=\"9249514\" " + "timestamp=\"2011-09-08T21:13:24Z\" user=\"mattfromderby\" uid=\"15867\"/>"; Node node = parseOne(xml, Node.class); assertNotNull(node); assertNull(node.getPosition()); }
public void testNode() { String xml = " <node id=\"246773347\" visible=\"true\" version=\"1\" changeset=\"80692\" " + "timestamp=\"2008-02-09T10:59:23Z\" user=\"Yeah\" uid=\"12503\" " + "lat=\"51.7463194\" lon=\"0.2428181\"/>"; Node node = parseOne(xml, Node.class); assertEquals(51.7463194, node.getPosition().getLatitude()); assertEquals(0.2428181, node.getPosition().getLongitude()); assertEquals(246773347, node.getId()); assertEquals(1, node.getVersion()); assertNotNull(node.getChangeset()); assertEquals(80692, node.getChangeset().id); Calendar c = Calendar.getInstance(TimeZone.getTimeZone("UTC"), Locale.UK); c.set(2008, Calendar.FEBRUARY, 9, 10, 59, 23); assertEquals(c.getTimeInMillis() / 1000, node.getDateEdited().getTime() / 1000); assertEquals(c.getTimeInMillis() / 1000, node.getChangeset().date.getTime() / 1000); assertNotNull(node.getChangeset().user); assertEquals("Yeah", node.getChangeset().user.displayName); assertEquals(12503, node.getChangeset().user.id); assertNull(node.getTags()); }
public void testGetChanges() { Node node = new OsmNode(-1, 1, new OsmLatLon(55.12313,50.13221), null); List<Element> elements = new ArrayList<>(); elements.add(node); long changesetId = mapDataDao.updateMap("test", "test", elements, null); SimpleMapDataChangesHandler handler = new SimpleMapDataChangesHandler(); unprivilegedDao.getData(changesetId, handler); List<Element> createdElements = handler.getCreations(); assertEquals(1, createdElements.size()); OsmNode createdNode = (OsmNode) createdElements.get(0); // delete again... (clean up before asserting) createdNode.setDeleted(true); mapDataDao.updateMap("clean up test", "test", createdElements, null); assertNotSame(node.getId(), createdNode.getId()); assertEquals(node.getVersion(), createdNode.getVersion()); assertEquals(node.getPosition(), createdNode.getPosition()); assertEquals(changesetId, createdNode.getChangeset().id); } }