Search in sources :

Example 1 with Relation

use of de.westnordost.osmapi.map.data.Relation in project StreetComplete by westnordost.

the class MergedElementDaoTest method testPutRelation.

public void testPutRelation() {
    Relation relation = mock(Relation.class);
    when(relation.getType()).thenReturn(Element.Type.RELATION);
    dao.put(relation);
    verify(relationDao).put(relation);
}
Also used : Relation(de.westnordost.osmapi.map.data.Relation) OsmRelation(de.westnordost.osmapi.map.data.OsmRelation)

Example 2 with Relation

use of de.westnordost.osmapi.map.data.Relation in project StreetComplete by westnordost.

the class MergedElementDao method putAll.

public void putAll(Collection<Element> elements) {
    Collection<Node> nodes = new ArrayList<>();
    Collection<Way> ways = new ArrayList<>();
    Collection<Relation> relations = new ArrayList<>();
    for (Element element : elements) {
        switch(element.getType()) {
            case NODE:
                nodes.add((Node) element);
                break;
            case WAY:
                ways.add((Way) element);
                break;
            case RELATION:
                relations.add((Relation) element);
                break;
        }
    }
    if (!nodes.isEmpty())
        nodeDao.putAll(nodes);
    if (!ways.isEmpty())
        wayDao.putAll(ways);
    if (!relations.isEmpty())
        relationDao.putAll(relations);
}
Also used : Relation(de.westnordost.osmapi.map.data.Relation) Node(de.westnordost.osmapi.map.data.Node) Element(de.westnordost.osmapi.map.data.Element) ArrayList(java.util.ArrayList) Way(de.westnordost.osmapi.map.data.Way)

Example 3 with Relation

use of de.westnordost.osmapi.map.data.Relation in project StreetComplete by westnordost.

the class OverpassMapDataParserTest method testRelation.

public void testRelation() {
    OsmLatLon[] p = new OsmLatLon[5];
    p[0] = new OsmLatLon(1, 2);
    p[1] = new OsmLatLon(3, 4);
    p[2] = new OsmLatLon(5, 6);
    p[3] = new OsmLatLon(7, 8);
    p[4] = new OsmLatLon(9, 10);
    String xml = "<relation id='10' version='1'>\n" + " <member type='relation' ref='4' role=''/>\n" + " <member type='way' ref='1' role='outer'>\n" + "  <nd lat='" + p[0].getLatitude() + "' lon='" + p[0].getLongitude() + "'/>\n" + "  <nd lat='" + p[1].getLatitude() + "' lon='" + p[1].getLongitude() + "'/>\n" + " </member>\n" + " <member type='way' ref='2' role='inner'>\n" + "  <nd lat='" + p[2].getLatitude() + "' lon='" + p[2].getLongitude() + "'/>\n" + "  <nd lat='" + p[3].getLatitude() + "' lon='" + p[3].getLongitude() + "'/>\n" + " </member>\n" + " <member type='node' ref='3' role='point'>\n" + "  <nd lat='" + p[4].getLatitude() + "' lon='" + p[4].getLongitude() + "'/>\n" + " </member>\n" + "</relation>";
    LongSparseArray<List<LatLon>> expectedGeometry = new LongSparseArray<>();
    expectedGeometry.put(1, new ArrayList<>(Arrays.asList(p[0], p[1])));
    expectedGeometry.put(2, new ArrayList<>(Arrays.asList(p[2], p[3])));
    Element e = parseOne(xml, expectedGeometry);
    assertTrue(e instanceof Relation);
    Relation relation = (Relation) e;
    assertEquals(10, relation.getId());
    assertEquals(1, relation.getVersion());
    assertEquals(4, relation.getMembers().size());
    RelationMember[] rm = new RelationMember[relation.getMembers().size()];
    relation.getMembers().toArray(rm);
    assertEquals(4, rm[0].getRef());
    assertEquals(Element.Type.RELATION, rm[0].getType());
    assertEquals("", rm[0].getRole());
    assertEquals(1, rm[1].getRef());
    assertEquals(Element.Type.WAY, rm[1].getType());
    assertEquals("outer", rm[1].getRole());
    assertEquals(2, rm[2].getRef());
    assertEquals(Element.Type.WAY, rm[2].getType());
    assertEquals("inner", rm[2].getRole());
    assertEquals(3, rm[3].getRef());
    assertEquals(Element.Type.NODE, rm[3].getType());
    assertEquals("point", rm[3].getRole());
    assertNull(relation.getTags());
}
Also used : LongSparseArray(android.util.LongSparseArray) Relation(de.westnordost.osmapi.map.data.Relation) RelationMember(de.westnordost.osmapi.map.data.RelationMember) Element(de.westnordost.osmapi.map.data.Element) ArrayList(java.util.ArrayList) List(java.util.List) OsmLatLon(de.westnordost.osmapi.map.data.OsmLatLon)

Example 4 with Relation

use of de.westnordost.osmapi.map.data.Relation in project StreetComplete by westnordost.

the class RelationDaoTest method testPutGetNoTags.

public void testPutGetNoTags() {
    List<RelationMember> members = new ArrayList<>();
    members.add(new OsmRelationMember(0, "outer", Element.Type.WAY));
    members.add(new OsmRelationMember(1, "inner", Element.Type.WAY));
    Relation relation = new OsmRelation(5, 1, members, null);
    dao.put(relation);
    Relation dbRelation = dao.get(5);
    checkEqual(relation, dbRelation);
}
Also used : Relation(de.westnordost.osmapi.map.data.Relation) OsmRelation(de.westnordost.osmapi.map.data.OsmRelation) OsmRelationMember(de.westnordost.osmapi.map.data.OsmRelationMember) RelationMember(de.westnordost.osmapi.map.data.RelationMember) OsmRelation(de.westnordost.osmapi.map.data.OsmRelation) ArrayList(java.util.ArrayList) OsmRelationMember(de.westnordost.osmapi.map.data.OsmRelationMember)

Example 5 with Relation

use of de.westnordost.osmapi.map.data.Relation in project StreetComplete by westnordost.

the class MergedElementDaoTest method testGetRelation.

public void testGetRelation() {
    Relation relation = mock(Relation.class);
    when(relation.getId()).thenReturn(1L);
    dao.get(Element.Type.RELATION, 1L);
    verify(relationDao).get(1L);
}
Also used : Relation(de.westnordost.osmapi.map.data.Relation) OsmRelation(de.westnordost.osmapi.map.data.OsmRelation)

Aggregations

Relation (de.westnordost.osmapi.map.data.Relation)7 OsmRelation (de.westnordost.osmapi.map.data.OsmRelation)4 ArrayList (java.util.ArrayList)4 Element (de.westnordost.osmapi.map.data.Element)3 RelationMember (de.westnordost.osmapi.map.data.RelationMember)3 Node (de.westnordost.osmapi.map.data.Node)2 OsmRelationMember (de.westnordost.osmapi.map.data.OsmRelationMember)2 Way (de.westnordost.osmapi.map.data.Way)2 LongSparseArray (android.util.LongSparseArray)1 OsmLatLon (de.westnordost.osmapi.map.data.OsmLatLon)1 ElementGeometry (de.westnordost.streetcomplete.data.osm.ElementGeometry)1 HashMap (java.util.HashMap)1 List (java.util.List)1