Search in sources :

Example 1 with OsmHandler

use of de.topobyte.osm4j.core.access.OsmHandler in project osm4j-pbf by topobyte.

the class CopyElementwise method main.

public static void main(String[] args) throws IOException, OsmInputException {
    if (args.length != 2) {
        System.out.println("usage: " + CopyElementwise.class.getSimpleName() + " <input> <output>");
        System.exit(1);
    }
    InputStream input = new FileInputStream(args[0]);
    OutputStream output = new FileOutputStream(args[1]);
    final PbfWriter writer = new PbfWriter(output, true);
    PbfParser parser = new PbfParser(new OsmHandler() {

        @Override
        public void handle(OsmBounds bounds) throws IOException {
            writer.write(bounds);
        }

        @Override
        public void handle(OsmNode node) throws IOException {
            writer.write(node);
        }

        @Override
        public void handle(OsmWay way) throws IOException {
            writer.write(way);
        }

        @Override
        public void handle(OsmRelation relation) throws IOException {
            writer.write(relation);
        }

        @Override
        public void complete() throws IOException {
            writer.complete();
        }
    }, true);
    parser.parse(input);
    output.close();
}
Also used : OsmBounds(de.topobyte.osm4j.core.model.iface.OsmBounds) OsmNode(de.topobyte.osm4j.core.model.iface.OsmNode) FileInputStream(java.io.FileInputStream) InputStream(java.io.InputStream) OutputStream(java.io.OutputStream) FileOutputStream(java.io.FileOutputStream) OsmRelation(de.topobyte.osm4j.core.model.iface.OsmRelation) OsmHandler(de.topobyte.osm4j.core.access.OsmHandler) IOException(java.io.IOException) FileInputStream(java.io.FileInputStream) OsmWay(de.topobyte.osm4j.core.model.iface.OsmWay) PbfParser(de.topobyte.osm4j.pbf.seq.PbfParser) FileOutputStream(java.io.FileOutputStream) PbfWriter(de.topobyte.osm4j.pbf.seq.PbfWriter)

Example 2 with OsmHandler

use of de.topobyte.osm4j.core.access.OsmHandler in project osm4j-core by topobyte.

the class IdDataSetReader method read.

public static InMemorySetIdDataSet read(OsmReader reader) throws OsmInputException {
    final InMemorySetIdDataSet dataSet = new InMemorySetIdDataSet();
    final TLongSet nodeIds = dataSet.getNodeIds();
    final TLongSet wayIds = dataSet.getWayIds();
    final TLongSet relationIds = dataSet.getRelationIds();
    reader.setHandler(new OsmHandler() {

        @Override
        public void handle(OsmBounds bounds) throws IOException {
            dataSet.setBounds(bounds);
        }

        @Override
        public void handle(OsmNode node) throws IOException {
            nodeIds.add(node.getId());
        }

        @Override
        public void handle(OsmWay way) throws IOException {
            wayIds.add(way.getId());
        }

        @Override
        public void handle(OsmRelation relation) throws IOException {
            relationIds.add(relation.getId());
        }

        @Override
        public void complete() throws IOException {
        // nothing to do here
        }
    });
    reader.read();
    return dataSet;
}
Also used : OsmWay(de.topobyte.osm4j.core.model.iface.OsmWay) OsmBounds(de.topobyte.osm4j.core.model.iface.OsmBounds) OsmNode(de.topobyte.osm4j.core.model.iface.OsmNode) TLongSet(com.slimjars.dist.gnu.trove.set.TLongSet) OsmRelation(de.topobyte.osm4j.core.model.iface.OsmRelation) OsmHandler(de.topobyte.osm4j.core.access.OsmHandler) IOException(java.io.IOException)

Example 3 with OsmHandler

use of de.topobyte.osm4j.core.access.OsmHandler in project osm4j-core by topobyte.

the class ListDataSetLoader method read.

public static InMemoryListDataSet read(OsmReader reader, final boolean keepNodeTags, final boolean keepWayTags, final boolean keepRelationTags) throws OsmInputException {
    final InMemoryListDataSet dataSet = new InMemoryListDataSet();
    final List<OsmNode> nodes = dataSet.getNodes();
    final List<OsmWay> ways = dataSet.getWays();
    final List<OsmRelation> relations = dataSet.getRelations();
    reader.setHandler(new OsmHandler() {

        @Override
        public void handle(OsmBounds bounds) throws IOException {
            dataSet.setBounds(bounds);
        }

        @Override
        public void handle(OsmNode node) throws IOException {
            if (!keepNodeTags) {
                node = new Node(node.getId(), node.getLongitude(), node.getLatitude());
            }
            nodes.add(node);
        }

        @Override
        public void handle(OsmWay way) throws IOException {
            if (!keepWayTags) {
                TLongArrayList ids = new TLongArrayList();
                for (int i = 0; i < way.getNumberOfNodes(); i++) {
                    ids.add(way.getNodeId(i));
                }
                way = new Way(way.getId(), ids);
            }
            ways.add(way);
        }

        @Override
        public void handle(OsmRelation relation) throws IOException {
            if (!keepRelationTags) {
                List<OsmRelationMember> members = new ArrayList<>();
                for (int i = 0; i < relation.getNumberOfMembers(); i++) {
                    members.add(relation.getMember(i));
                }
                relation = new Relation(relation.getId(), members);
            }
            relations.add(relation);
        }

        @Override
        public void complete() throws IOException {
        // nothing to do here
        }
    });
    reader.read();
    return dataSet;
}
Also used : OsmBounds(de.topobyte.osm4j.core.model.iface.OsmBounds) TLongArrayList(com.slimjars.dist.gnu.trove.list.array.TLongArrayList) OsmNode(de.topobyte.osm4j.core.model.iface.OsmNode) OsmRelation(de.topobyte.osm4j.core.model.iface.OsmRelation) Node(de.topobyte.osm4j.core.model.impl.Node) OsmNode(de.topobyte.osm4j.core.model.iface.OsmNode) OsmHandler(de.topobyte.osm4j.core.access.OsmHandler) IOException(java.io.IOException) OsmWay(de.topobyte.osm4j.core.model.iface.OsmWay) Way(de.topobyte.osm4j.core.model.impl.Way) OsmWay(de.topobyte.osm4j.core.model.iface.OsmWay) Relation(de.topobyte.osm4j.core.model.impl.Relation) OsmRelation(de.topobyte.osm4j.core.model.iface.OsmRelation) ArrayList(java.util.ArrayList) TLongArrayList(com.slimjars.dist.gnu.trove.list.array.TLongArrayList) List(java.util.List)

Example 4 with OsmHandler

use of de.topobyte.osm4j.core.access.OsmHandler in project osm4j-core by topobyte.

the class MapDataSetLoader method read.

public static InMemoryMapDataSet read(OsmReader reader, final boolean keepNodeTags, final boolean keepWayTags, final boolean keepRelationTags) throws OsmInputException {
    final InMemoryMapDataSet dataSet = new InMemoryMapDataSet();
    final TLongObjectMap<OsmNode> nodes = dataSet.getNodes();
    final TLongObjectMap<OsmWay> ways = dataSet.getWays();
    final TLongObjectMap<OsmRelation> relations = dataSet.getRelations();
    reader.setHandler(new OsmHandler() {

        @Override
        public void handle(OsmBounds bounds) throws IOException {
            dataSet.setBounds(bounds);
        }

        @Override
        public void handle(OsmNode node) throws IOException {
            if (!keepNodeTags) {
                node = new Node(node.getId(), node.getLongitude(), node.getLatitude());
            }
            nodes.put(node.getId(), node);
        }

        @Override
        public void handle(OsmWay way) throws IOException {
            if (!keepWayTags) {
                TLongArrayList ids = new TLongArrayList();
                for (int i = 0; i < way.getNumberOfNodes(); i++) {
                    ids.add(way.getNodeId(i));
                }
                way = new Way(way.getId(), ids);
            }
            ways.put(way.getId(), way);
        }

        @Override
        public void handle(OsmRelation relation) throws IOException {
            if (!keepRelationTags) {
                List<OsmRelationMember> members = new ArrayList<>();
                for (int i = 0; i < relation.getNumberOfMembers(); i++) {
                    members.add(relation.getMember(i));
                }
                relation = new Relation(relation.getId(), members);
            }
            relations.put(relation.getId(), relation);
        }

        @Override
        public void complete() throws IOException {
        // nothing to do here
        }
    });
    reader.read();
    return dataSet;
}
Also used : OsmBounds(de.topobyte.osm4j.core.model.iface.OsmBounds) TLongArrayList(com.slimjars.dist.gnu.trove.list.array.TLongArrayList) OsmNode(de.topobyte.osm4j.core.model.iface.OsmNode) OsmRelation(de.topobyte.osm4j.core.model.iface.OsmRelation) Node(de.topobyte.osm4j.core.model.impl.Node) OsmNode(de.topobyte.osm4j.core.model.iface.OsmNode) OsmHandler(de.topobyte.osm4j.core.access.OsmHandler) IOException(java.io.IOException) OsmWay(de.topobyte.osm4j.core.model.iface.OsmWay) Way(de.topobyte.osm4j.core.model.impl.Way) OsmWay(de.topobyte.osm4j.core.model.iface.OsmWay) Relation(de.topobyte.osm4j.core.model.impl.Relation) OsmRelation(de.topobyte.osm4j.core.model.iface.OsmRelation) ArrayList(java.util.ArrayList) TLongArrayList(com.slimjars.dist.gnu.trove.list.array.TLongArrayList) List(java.util.List)

Aggregations

OsmHandler (de.topobyte.osm4j.core.access.OsmHandler)4 OsmBounds (de.topobyte.osm4j.core.model.iface.OsmBounds)4 OsmNode (de.topobyte.osm4j.core.model.iface.OsmNode)4 OsmRelation (de.topobyte.osm4j.core.model.iface.OsmRelation)4 OsmWay (de.topobyte.osm4j.core.model.iface.OsmWay)4 IOException (java.io.IOException)4 TLongArrayList (com.slimjars.dist.gnu.trove.list.array.TLongArrayList)2 Node (de.topobyte.osm4j.core.model.impl.Node)2 Relation (de.topobyte.osm4j.core.model.impl.Relation)2 Way (de.topobyte.osm4j.core.model.impl.Way)2 ArrayList (java.util.ArrayList)2 List (java.util.List)2 TLongSet (com.slimjars.dist.gnu.trove.set.TLongSet)1 PbfParser (de.topobyte.osm4j.pbf.seq.PbfParser)1 PbfWriter (de.topobyte.osm4j.pbf.seq.PbfWriter)1 FileInputStream (java.io.FileInputStream)1 FileOutputStream (java.io.FileOutputStream)1 InputStream (java.io.InputStream)1 OutputStream (java.io.OutputStream)1