diff --git a/vtm-extras/.classpath b/vtm-extras/.classpath index 95eb4288..74a814ce 100644 --- a/vtm-extras/.classpath +++ b/vtm-extras/.classpath @@ -6,5 +6,6 @@ <classpathentry exported="true" kind="lib" path="/vtm-libs/extras/jackson-core-2.1.4.jar"/> <classpathentry exported="true" kind="lib" path="/vtm-libs/extras/osmosis-osm-binary-0.43.jar"/> <classpathentry exported="true" kind="lib" path="/vtm-libs/extras/protobuf-java-2.4.1.jar" sourcepath="/home/jeff/.m2/repository/com/google/protobuf/protobuf-java/2.4.1/protobuf-java-2.4.1-sources.jar"/> + <classpathentry kind="lib" path="/vtm-libs/libs/jts-1.13.jar"/> <classpathentry kind="output" path="bin"/> </classpath> diff --git a/vtm-extras/src/org/oscim/utils/osm/OSMElement.java b/vtm-extras/src/org/oscim/utils/osm/OSMElement.java index 74880dce..f8de460d 100644 --- a/vtm-extras/src/org/oscim/utils/osm/OSMElement.java +++ b/vtm-extras/src/org/oscim/utils/osm/OSMElement.java @@ -18,6 +18,8 @@ package org.oscim.utils.osm; import org.oscim.core.TagSet; +import com.vividsolutions.jts.geom.Geometry; + public abstract class OSMElement { public final TagSet tags; @@ -59,4 +61,5 @@ public abstract class OSMElement { return "?" + id; } + public abstract Geometry toJts(); } diff --git a/vtm-extras/src/org/oscim/utils/osm/OSMMember.java b/vtm-extras/src/org/oscim/utils/osm/OSMMember.java index 84b7903f..e935dd88 100644 --- a/vtm-extras/src/org/oscim/utils/osm/OSMMember.java +++ b/vtm-extras/src/org/oscim/utils/osm/OSMMember.java @@ -23,8 +23,6 @@ public class OSMMember { RELATIOM } - static final boolean useDebugLabels = true; - public final String role; public final OSMElement member; diff --git a/vtm-extras/src/org/oscim/utils/osm/OSMNode.java b/vtm-extras/src/org/oscim/utils/osm/OSMNode.java index a5ce4f4b..8ac6328d 100644 --- a/vtm-extras/src/org/oscim/utils/osm/OSMNode.java +++ b/vtm-extras/src/org/oscim/utils/osm/OSMNode.java @@ -18,8 +18,9 @@ package org.oscim.utils.osm; import org.oscim.core.TagSet; +import com.vividsolutions.jts.geom.Geometry; + public class OSMNode extends OSMElement { - //public static EMPTY_NODE = new OSMNode() public final double lat; public final double lon; @@ -35,4 +36,8 @@ public class OSMNode extends OSMElement { return "n" + id; } + @Override + public Geometry toJts() { + return null; //bnew Point(new Coordinate(lat, lon), null); + } } diff --git a/vtm-extras/src/org/oscim/utils/osm/OSMRelation.java b/vtm-extras/src/org/oscim/utils/osm/OSMRelation.java index 33aa596f..8ebe80c7 100644 --- a/vtm-extras/src/org/oscim/utils/osm/OSMRelation.java +++ b/vtm-extras/src/org/oscim/utils/osm/OSMRelation.java @@ -21,6 +21,8 @@ import java.util.List; import org.oscim.core.TagSet; +import com.vividsolutions.jts.geom.Geometry; + public class OSMRelation extends OSMElement { public final List<OSMMember> relationMembers; @@ -38,4 +40,8 @@ public class OSMRelation extends OSMElement { return "r" + id; } + @Override + public Geometry toJts() { + return null; + } } diff --git a/vtm-extras/src/org/oscim/utils/osm/OSMWay.java b/vtm-extras/src/org/oscim/utils/osm/OSMWay.java index 993dcdef..50d8505d 100644 --- a/vtm-extras/src/org/oscim/utils/osm/OSMWay.java +++ b/vtm-extras/src/org/oscim/utils/osm/OSMWay.java @@ -20,6 +20,11 @@ import java.util.List; import org.oscim.core.TagSet; +import com.vividsolutions.jts.geom.CoordinateSequence; +import com.vividsolutions.jts.geom.Geometry; +import com.vividsolutions.jts.geom.LineString; +import com.vividsolutions.jts.geom.impl.PackedCoordinateSequenceFactory; + public class OSMWay extends OSMElement { public final List<OSMNode> nodes; @@ -39,4 +44,15 @@ public class OSMWay extends OSMElement { return "w" + id; } + public Geometry toJts() { + double[] coords = new double[nodes.size() * 2]; + int i = 0; + for (OSMNode n : nodes) { + coords[i++] = n.lon; + coords[i++] = n.lat; + } + + CoordinateSequence c = PackedCoordinateSequenceFactory.DOUBLE_FACTORY.create(coords, 2); + return new LineString(c, null); + } }