Search in sources :

Example 1 with RelationMember

use of de.topobyte.osm4j.core.model.impl.RelationMember in project osm4j-core by topobyte.

the class ImplUtil method clone.

public static Relation clone(OsmRelation relation) {
    List<? extends OsmTag> tags = cloneTags(relation);
    OsmMetadata metadata = cloneMetadata(relation);
    List<RelationMember> members = new ArrayList<>(relation.getNumberOfMembers());
    for (int i = 0; i < relation.getNumberOfMembers(); i++) {
        OsmRelationMember member = relation.getMember(i);
        members.add(new RelationMember(member.getId(), member.getType(), member.getRole()));
    }
    return new Relation(relation.getId(), members, tags, metadata);
}
Also used : Relation(de.topobyte.osm4j.core.model.impl.Relation) OsmRelation(de.topobyte.osm4j.core.model.iface.OsmRelation) RelationMember(de.topobyte.osm4j.core.model.impl.RelationMember) OsmRelationMember(de.topobyte.osm4j.core.model.iface.OsmRelationMember) OsmMetadata(de.topobyte.osm4j.core.model.iface.OsmMetadata) ArrayList(java.util.ArrayList) TLongArrayList(com.slimjars.dist.gnu.trove.list.array.TLongArrayList) OsmRelationMember(de.topobyte.osm4j.core.model.iface.OsmRelationMember)

Example 2 with RelationMember

use of de.topobyte.osm4j.core.model.impl.RelationMember in project osm4j-pbf by topobyte.

the class PrimParser method convert.

public OsmRelation convert(Osmformat.Relation r) {
    long id = r.getId();
    long lastMid = 0;
    List<OsmTag> tags = new ArrayList<>();
    for (int j = 0; j < r.getKeysCount(); j++) {
        tags.add(new Tag(strings[r.getKeys(j)], strings[r.getVals(j)]));
    }
    List<RelationMember> members = new ArrayList<>();
    for (int j = 0; j < r.getMemidsCount(); j++) {
        long mid = lastMid + r.getMemids(j);
        lastMid = mid;
        String role = strings[r.getRolesSid(j)];
        Osmformat.Relation.MemberType type = r.getTypes(j);
        EntityType t = getType(type);
        RelationMember member = new RelationMember(mid, t, role);
        members.add(member);
    }
    OsmMetadata metadata = null;
    if (fetchMetadata && r.hasInfo()) {
        Osmformat.Info info = r.getInfo();
        metadata = convertMetadata(info);
    }
    return new Relation(id, members, tags, metadata);
}
Also used : OsmMetadata(de.topobyte.osm4j.core.model.iface.OsmMetadata) OsmTag(de.topobyte.osm4j.core.model.iface.OsmTag) ArrayList(java.util.ArrayList) TLongArrayList(com.slimjars.dist.gnu.trove.list.array.TLongArrayList) Osmformat(de.topobyte.osm4j.pbf.protobuf.Osmformat) EntityType(de.topobyte.osm4j.core.model.iface.EntityType) Relation(de.topobyte.osm4j.core.model.impl.Relation) OsmRelation(de.topobyte.osm4j.core.model.iface.OsmRelation) RelationMember(de.topobyte.osm4j.core.model.impl.RelationMember) Tag(de.topobyte.osm4j.core.model.impl.Tag) OsmTag(de.topobyte.osm4j.core.model.iface.OsmTag)

Aggregations

TLongArrayList (com.slimjars.dist.gnu.trove.list.array.TLongArrayList)2 OsmMetadata (de.topobyte.osm4j.core.model.iface.OsmMetadata)2 OsmRelation (de.topobyte.osm4j.core.model.iface.OsmRelation)2 Relation (de.topobyte.osm4j.core.model.impl.Relation)2 RelationMember (de.topobyte.osm4j.core.model.impl.RelationMember)2 ArrayList (java.util.ArrayList)2 EntityType (de.topobyte.osm4j.core.model.iface.EntityType)1 OsmRelationMember (de.topobyte.osm4j.core.model.iface.OsmRelationMember)1 OsmTag (de.topobyte.osm4j.core.model.iface.OsmTag)1 Tag (de.topobyte.osm4j.core.model.impl.Tag)1 Osmformat (de.topobyte.osm4j.pbf.protobuf.Osmformat)1