This is an automated email from the git hooks/post-receive script. sebastic-guest pushed a commit to tag v1.3.1 in repository osmpbf.
commit fc795d3313919b1ce5fe9c4ff129db5d70afd709 Author: michael <michael@192.168.1.3> Date: Fri Oct 19 23:00:21 2012 +0100 Java file read demonstration, to help people getting started. --- README | 2 + pom.xml | 2 + resources/sample.pbf | Bin 0 -> 9653 bytes src.java/crosby/binary/test/ReadFileExample.java | 86 +++++++++++++++++++++++ 4 files changed, 90 insertions(+) diff --git a/README b/README index 5006cda..2e8517b 100644 --- a/README +++ b/README @@ -6,6 +6,8 @@ See http://wiki.openstreetmap.org/wiki/PBF_Format . There is a Java and a C version of the PBF library code here. +For a Java usage example, see src.java\crosby\binary\test\ReadFileExample.java + C Version ========= diff --git a/pom.xml b/pom.xml index d1e3024..f5172dc 100644 --- a/pom.xml +++ b/pom.xml @@ -26,6 +26,8 @@ <sourceDirectory>${basedir}/src.java</sourceDirectory> <outputDirectory>${basedir}/build</outputDirectory> + <resources><resource><directory>${basedir}/resources</directory></resource></resources> + <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> diff --git a/resources/sample.pbf b/resources/sample.pbf new file mode 100644 index 0000000..8a22edf Binary files /dev/null and b/resources/sample.pbf differ diff --git a/src.java/crosby/binary/test/ReadFileExample.java b/src.java/crosby/binary/test/ReadFileExample.java new file mode 100644 index 0000000..082d406 --- /dev/null +++ b/src.java/crosby/binary/test/ReadFileExample.java @@ -0,0 +1,86 @@ +package crosby.binary.test; + +import crosby.binary.*; +import crosby.binary.Osmformat.*; +import crosby.binary.file.*; +import java.io.*; +import java.util.List; + +/** + * Demonstrates how to read a file. Reads sample.pbf from the resources folder + * and prints details about it to the standard output. + * + * @author Michael Tandy + */ +public class ReadFileExample { + + public static void main(String[] args) throws Exception { + InputStream input = ReadFileExample.class.getResourceAsStream("/sample.pbf"); + BlockReaderAdapter brad = new TestBinaryParser(); + new BlockInputStream(input, brad).process(); + } + + private static class TestBinaryParser extends BinaryParser { + + @Override + protected void parseRelations(List<Relation> rels) { + if (!rels.isEmpty()) + System.out.println("Got some relations to parse."); + Relation r = null; + } + + @Override + protected void parseDense(DenseNodes nodes) { + long lastId=0; + long lastLat=0; + long lastLon=0; + + for (int i=0 ; i<nodes.getIdCount() ; i++) { + lastId += nodes.getId(i); + lastLat += nodes.getLat(i); + lastLon += nodes.getLon(i); + System.out.printf("Dense node, ID %d @ %.6f,%.6f\n", + lastId,parseLat(lastLat),parseLon(lastLon)); + } + } + + @Override + protected void parseNodes(List<Node> nodes) { + for (Node n : nodes) { + System.out.printf("Regular node, ID %d @ %.6f,%.6f\n", + n.getId(),parseLat(n.getLat()),parseLon(n.getLon())); + } + } + + @Override + protected void parseWays(List<Way> ways) { + for (Way w : ways) { + System.out.println("Way ID " + w.getId()); + StringBuilder sb = new StringBuilder(); + sb.append(" Nodes: "); + long lastRef = 0; + for (Long ref : w.getRefsList()) { + lastRef+= ref; + sb.append(lastRef).append(" "); + } + sb.append("\n Key=value pairs: "); + for (int i=0 ; i<w.getKeysCount() ; i++) { + sb.append(getStringById(w.getKeys(i))).append("=") + .append(getStringById(w.getVals(i))).append(" "); + } + System.out.println(sb.toString()); + } + } + + @Override + protected void parse(HeaderBlock header) { + System.out.println("Got header block."); + } + + public void complete() { + System.out.println("Complete!"); + } + + } + +} -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/osmpbf.git _______________________________________________ Pkg-grass-devel mailing list Pkg-grass-devel@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-grass-devel