Search in sources :

Example 1 with Tag

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

the class PrimParser method convert.

public OsmWay convert(Osmformat.Way w) {
    long id = w.getId();
    TLongArrayList nodes = new TLongArrayList();
    long lastId = 0;
    for (long j : w.getRefsList()) {
        nodes.add(j + lastId);
        lastId = j + lastId;
    }
    List<OsmTag> tags = new ArrayList<>();
    for (int j = 0; j < w.getKeysCount(); j++) {
        tags.add(new Tag(strings[w.getKeys(j)], strings[w.getVals(j)]));
    }
    OsmMetadata metadata = null;
    if (fetchMetadata && w.hasInfo()) {
        Osmformat.Info info = w.getInfo();
        metadata = convertMetadata(info);
    }
    return new Way(id, nodes, tags, metadata);
}
Also used : TLongArrayList(com.slimjars.dist.gnu.trove.list.array.TLongArrayList) 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) Tag(de.topobyte.osm4j.core.model.impl.Tag) OsmTag(de.topobyte.osm4j.core.model.iface.OsmTag) Osmformat(de.topobyte.osm4j.pbf.protobuf.Osmformat) OsmWay(de.topobyte.osm4j.core.model.iface.OsmWay) Way(de.topobyte.osm4j.core.model.impl.Way)

Example 2 with Tag

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

the class PrimParser method convert.

public OsmNode convert(Osmformat.Node n) {
    long id = n.getId();
    double lat = parseLat(n.getLat());
    double lon = parseLon(n.getLon());
    List<OsmTag> tags = new ArrayList<>();
    for (int j = 0; j < n.getKeysCount(); j++) {
        tags.add(new Tag(strings[n.getKeys(j)], strings[n.getVals(j)]));
    }
    OsmMetadata metadata = null;
    if (fetchMetadata && n.hasInfo()) {
        Osmformat.Info info = n.getInfo();
        metadata = convertMetadata(info);
    }
    return new Node(id, lon, lat, tags, metadata);
}
Also used : OsmMetadata(de.topobyte.osm4j.core.model.iface.OsmMetadata) OsmTag(de.topobyte.osm4j.core.model.iface.OsmTag) Node(de.topobyte.osm4j.core.model.impl.Node) OsmNode(de.topobyte.osm4j.core.model.iface.OsmNode) ArrayList(java.util.ArrayList) TLongArrayList(com.slimjars.dist.gnu.trove.list.array.TLongArrayList) Tag(de.topobyte.osm4j.core.model.impl.Tag) OsmTag(de.topobyte.osm4j.core.model.iface.OsmTag) Osmformat(de.topobyte.osm4j.pbf.protobuf.Osmformat)

Example 3 with Tag

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

the class PrimParser method convert.

public List<OsmNode> convert(Osmformat.DenseNodes nodes) {
    List<OsmNode> results = new ArrayList<>(nodes.getIdCount());
    Osmformat.DenseInfo denseInfo = null;
    boolean hasVisible = false;
    if (fetchMetadata && nodes.hasDenseinfo()) {
        denseInfo = nodes.getDenseinfo();
        hasVisible = denseInfo.getVisibleCount() != 0;
    }
    long id = 0, lat = 0, lon = 0;
    int version = 0, uid = 0, userSid = 0;
    long timestamp = 0, changeset = 0;
    // Index into the keysvals array.
    int j = 0;
    for (int i = 0; i < nodes.getIdCount(); i++) {
        id += nodes.getId(i);
        lat += nodes.getLat(i);
        lon += nodes.getLon(i);
        double latf = parseLat(lat), lonf = parseLon(lon);
        List<OsmTag> tags = new ArrayList<>();
        OsmMetadata metadata = null;
        if (fetchMetadata && nodes.hasDenseinfo()) {
            version = denseInfo.getVersion(i);
            timestamp += denseInfo.getTimestamp(i);
            uid += denseInfo.getUid(i);
            userSid += denseInfo.getUserSid(i);
            changeset += denseInfo.getChangeset(i);
            boolean visible = true;
            if (hasVisible) {
                visible = denseInfo.getVisible(i);
            }
            metadata = new Metadata(version, timestamp * dateGranularity, uid, strings[userSid], changeset, visible);
        }
        // If empty, assume that nothing here has keys or vals.
        if (nodes.getKeysValsCount() > 0) {
            while (nodes.getKeysVals(j) != 0) {
                int keyid = nodes.getKeysVals(j++);
                int valid = nodes.getKeysVals(j++);
                tags.add(new Tag(strings[keyid], strings[valid]));
            }
            // Skip over the '0' delimiter.
            j++;
        }
        results.add(new Node(id, lonf, latf, tags, metadata));
    }
    return results;
}
Also used : OsmMetadata(de.topobyte.osm4j.core.model.iface.OsmMetadata) OsmNode(de.topobyte.osm4j.core.model.iface.OsmNode) OsmTag(de.topobyte.osm4j.core.model.iface.OsmTag) Node(de.topobyte.osm4j.core.model.impl.Node) OsmNode(de.topobyte.osm4j.core.model.iface.OsmNode) ArrayList(java.util.ArrayList) TLongArrayList(com.slimjars.dist.gnu.trove.list.array.TLongArrayList) Metadata(de.topobyte.osm4j.core.model.impl.Metadata) OsmMetadata(de.topobyte.osm4j.core.model.iface.OsmMetadata) Osmformat(de.topobyte.osm4j.pbf.protobuf.Osmformat) Tag(de.topobyte.osm4j.core.model.impl.Tag) OsmTag(de.topobyte.osm4j.core.model.iface.OsmTag)

Example 4 with Tag

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

the class ImplUtil method cloneTags.

private static List<? extends OsmTag> cloneTags(OsmEntity entity) {
    List<Tag> tags = new ArrayList<>();
    for (int i = 0; i < entity.getNumberOfTags(); i++) {
        OsmTag tag = entity.getTag(i);
        tags.add(new Tag(tag.getKey(), tag.getValue()));
    }
    return tags;
}
Also used : OsmTag(de.topobyte.osm4j.core.model.iface.OsmTag) ArrayList(java.util.ArrayList) TLongArrayList(com.slimjars.dist.gnu.trove.list.array.TLongArrayList) Tag(de.topobyte.osm4j.core.model.impl.Tag) OsmTag(de.topobyte.osm4j.core.model.iface.OsmTag)

Example 5 with Tag

use of de.topobyte.osm4j.core.model.impl.Tag 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)6 OsmTag (de.topobyte.osm4j.core.model.iface.OsmTag)6 Tag (de.topobyte.osm4j.core.model.impl.Tag)6 ArrayList (java.util.ArrayList)6 OsmMetadata (de.topobyte.osm4j.core.model.iface.OsmMetadata)5 Osmformat (de.topobyte.osm4j.pbf.protobuf.Osmformat)5 OsmNode (de.topobyte.osm4j.core.model.iface.OsmNode)3 Node (de.topobyte.osm4j.core.model.impl.Node)3 Metadata (de.topobyte.osm4j.core.model.impl.Metadata)2 EntityType (de.topobyte.osm4j.core.model.iface.EntityType)1 OsmRelation (de.topobyte.osm4j.core.model.iface.OsmRelation)1 OsmWay (de.topobyte.osm4j.core.model.iface.OsmWay)1 Relation (de.topobyte.osm4j.core.model.impl.Relation)1 RelationMember (de.topobyte.osm4j.core.model.impl.RelationMember)1 Way (de.topobyte.osm4j.core.model.impl.Way)1