From aa5a1436ca6566dcd0c849460936db45dd8da7ae Mon Sep 17 00:00:00 2001
From: Emux <devemux86@gmail.com>
Date: Tue, 16 Jan 2018 14:27:44 +0200
Subject: [PATCH] JTS (LocationTech), fix #484

---
 docs/Changelog.md                             |  1 +
 docs/Integration.md                           |  2 +-
 vtm-extras/build.gradle                       |  2 +-
 .../src/org/oscim/core/osm/OsmElement.java    |  3 +--
 .../src/org/oscim/core/osm/OsmNode.java       |  3 +--
 .../src/org/oscim/core/osm/OsmRelation.java   |  3 +--
 vtm-extras/src/org/oscim/core/osm/OsmWay.java |  9 ++++---
 vtm-jts/build.gradle                          |  2 +-
 .../org/oscim/layers/vector/JtsConverter.java | 11 ++++-----
 .../org/oscim/layers/vector/PathLayer.java    |  5 ++--
 .../org/oscim/layers/vector/VectorLayer.java  | 13 +++++-----
 .../layers/vector/geometries/Drawable.java    |  2 +-
 .../layers/vector/geometries/JtsDrawable.java |  7 +++---
 .../vector/geometries/LineDrawable.java       |  5 ++--
 .../vector/geometries/PolygonDrawable.java    |  3 +--
 .../src/org/oscim/utils/geom/GeomBuilder.java | 24 +++++++++----------
 16 files changed, 43 insertions(+), 52 deletions(-)

diff --git a/docs/Changelog.md b/docs/Changelog.md
index b8bcd67d..5dbb5927 100644
--- a/docs/Changelog.md
+++ b/docs/Changelog.md
@@ -8,6 +8,7 @@
 - Improved theme styles [#479](https://github.com/mapsforge/vtm/pull/479)
 - Render theme fallback internal resources [#477](https://github.com/mapsforge/vtm/issues/477)
 - Fix libGDX flickering [#148](https://github.com/mapsforge/vtm/issues/148) [#149](https://github.com/mapsforge/vtm/issues/149)
+- JTS (LocationTech) [#484](https://github.com/mapsforge/vtm/issues/484)
 - Many other minor improvements and bug fixes
 - [Solved issues](https://github.com/mapsforge/vtm/issues?q=is%3Aclosed+milestone%3A0.10.0)
 
diff --git a/docs/Integration.md b/docs/Integration.md
index 67f64e9c..9716d31e 100644
--- a/docs/Integration.md
+++ b/docs/Integration.md
@@ -73,7 +73,7 @@ implementation 'com.metsci.ext.com.kitfox.svg:svg-salamander:0.1.19'
 
 ```groovy
 implementation 'org.mapsforge:vtm-jts:[CURRENT-VERSION]'
-implementation 'com.vividsolutions:jts:1.13'
+implementation 'org.locationtech.jts:jts-core:1.15.0'
 ```
 
 - Online tiles
diff --git a/vtm-extras/build.gradle b/vtm-extras/build.gradle
index 3f8a5958..e280fdad 100644
--- a/vtm-extras/build.gradle
+++ b/vtm-extras/build.gradle
@@ -4,7 +4,7 @@ apply plugin: 'maven'
 dependencies {
     api project(':vtm')
     api 'com.fasterxml.jackson.core:jackson-core:2.8.4'
-    api 'com.vividsolutions:jts:1.13'
+    api 'org.locationtech.jts:jts-core:1.15.0'
     api 'org.openstreetmap.osmosis:osmosis-osm-binary:0.46'
 }
 
diff --git a/vtm-extras/src/org/oscim/core/osm/OsmElement.java b/vtm-extras/src/org/oscim/core/osm/OsmElement.java
index 07136db9..9b3d00f5 100644
--- a/vtm-extras/src/org/oscim/core/osm/OsmElement.java
+++ b/vtm-extras/src/org/oscim/core/osm/OsmElement.java
@@ -16,8 +16,7 @@
  */
 package org.oscim.core.osm;
 
-import com.vividsolutions.jts.geom.Geometry;
-
+import org.locationtech.jts.geom.Geometry;
 import org.oscim.core.TagSet;
 
 public abstract class OsmElement {
diff --git a/vtm-extras/src/org/oscim/core/osm/OsmNode.java b/vtm-extras/src/org/oscim/core/osm/OsmNode.java
index 370b5f84..9affe390 100644
--- a/vtm-extras/src/org/oscim/core/osm/OsmNode.java
+++ b/vtm-extras/src/org/oscim/core/osm/OsmNode.java
@@ -16,8 +16,7 @@
  */
 package org.oscim.core.osm;
 
-import com.vividsolutions.jts.geom.Geometry;
-
+import org.locationtech.jts.geom.Geometry;
 import org.oscim.core.TagSet;
 
 public class OsmNode extends OsmElement {
diff --git a/vtm-extras/src/org/oscim/core/osm/OsmRelation.java b/vtm-extras/src/org/oscim/core/osm/OsmRelation.java
index ec3e71d6..509ff409 100644
--- a/vtm-extras/src/org/oscim/core/osm/OsmRelation.java
+++ b/vtm-extras/src/org/oscim/core/osm/OsmRelation.java
@@ -16,8 +16,7 @@
  */
 package org.oscim.core.osm;
 
-import com.vividsolutions.jts.geom.Geometry;
-
+import org.locationtech.jts.geom.Geometry;
 import org.oscim.core.TagSet;
 
 import java.util.ArrayList;
diff --git a/vtm-extras/src/org/oscim/core/osm/OsmWay.java b/vtm-extras/src/org/oscim/core/osm/OsmWay.java
index 98e24dc3..d137220c 100644
--- a/vtm-extras/src/org/oscim/core/osm/OsmWay.java
+++ b/vtm-extras/src/org/oscim/core/osm/OsmWay.java
@@ -16,11 +16,10 @@
  */
 package org.oscim.core.osm;
 
-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;
-
+import org.locationtech.jts.geom.CoordinateSequence;
+import org.locationtech.jts.geom.Geometry;
+import org.locationtech.jts.geom.LineString;
+import org.locationtech.jts.geom.impl.PackedCoordinateSequenceFactory;
 import org.oscim.core.TagSet;
 
 import java.util.List;
diff --git a/vtm-jts/build.gradle b/vtm-jts/build.gradle
index f24ba90e..559baba8 100644
--- a/vtm-jts/build.gradle
+++ b/vtm-jts/build.gradle
@@ -3,7 +3,7 @@ apply plugin: 'maven'
 
 dependencies {
     api project(':vtm')
-    api 'com.vividsolutions:jts:1.13'
+    api 'org.locationtech.jts:jts-core:1.15.0'
 }
 
 sourceSets {
diff --git a/vtm-jts/src/org/oscim/layers/vector/JtsConverter.java b/vtm-jts/src/org/oscim/layers/vector/JtsConverter.java
index 9741457b..410f3e69 100644
--- a/vtm-jts/src/org/oscim/layers/vector/JtsConverter.java
+++ b/vtm-jts/src/org/oscim/layers/vector/JtsConverter.java
@@ -1,11 +1,10 @@
 package org.oscim.layers.vector;
 
-import com.vividsolutions.jts.geom.Coordinate;
-import com.vividsolutions.jts.geom.CoordinateSequence;
-import com.vividsolutions.jts.geom.LineString;
-import com.vividsolutions.jts.geom.Point;
-import com.vividsolutions.jts.geom.Polygon;
-
+import org.locationtech.jts.geom.Coordinate;
+import org.locationtech.jts.geom.CoordinateSequence;
+import org.locationtech.jts.geom.LineString;
+import org.locationtech.jts.geom.Point;
+import org.locationtech.jts.geom.Polygon;
 import org.oscim.core.GeometryBuffer;
 
 import static org.oscim.core.MercatorProjection.latitudeToY;
diff --git a/vtm-jts/src/org/oscim/layers/vector/PathLayer.java b/vtm-jts/src/org/oscim/layers/vector/PathLayer.java
index f82c6936..78692e41 100644
--- a/vtm-jts/src/org/oscim/layers/vector/PathLayer.java
+++ b/vtm-jts/src/org/oscim/layers/vector/PathLayer.java
@@ -20,9 +20,8 @@
  */
 package org.oscim.layers.vector;
 
-import com.vividsolutions.jts.geom.Coordinate;
-import com.vividsolutions.jts.geom.LineString;
-
+import org.locationtech.jts.geom.Coordinate;
+import org.locationtech.jts.geom.LineString;
 import org.oscim.backend.CanvasAdapter;
 import org.oscim.core.GeoPoint;
 import org.oscim.core.Point;
diff --git a/vtm-jts/src/org/oscim/layers/vector/VectorLayer.java b/vtm-jts/src/org/oscim/layers/vector/VectorLayer.java
index 26ef0386..1660993f 100644
--- a/vtm-jts/src/org/oscim/layers/vector/VectorLayer.java
+++ b/vtm-jts/src/org/oscim/layers/vector/VectorLayer.java
@@ -17,13 +17,12 @@
  */
 package org.oscim.layers.vector;
 
-import com.vividsolutions.jts.geom.Envelope;
-import com.vividsolutions.jts.geom.Geometry;
-import com.vividsolutions.jts.geom.LineString;
-import com.vividsolutions.jts.geom.Point;
-import com.vividsolutions.jts.geom.Polygon;
-import com.vividsolutions.jts.simplify.DouglasPeuckerSimplifier;
-
+import org.locationtech.jts.geom.Envelope;
+import org.locationtech.jts.geom.Geometry;
+import org.locationtech.jts.geom.LineString;
+import org.locationtech.jts.geom.Point;
+import org.locationtech.jts.geom.Polygon;
+import org.locationtech.jts.simplify.DouglasPeuckerSimplifier;
 import org.oscim.backend.canvas.Color;
 import org.oscim.core.Box;
 import org.oscim.core.GeoPoint;
diff --git a/vtm-jts/src/org/oscim/layers/vector/geometries/Drawable.java b/vtm-jts/src/org/oscim/layers/vector/geometries/Drawable.java
index 07bff0ac..eda03af2 100644
--- a/vtm-jts/src/org/oscim/layers/vector/geometries/Drawable.java
+++ b/vtm-jts/src/org/oscim/layers/vector/geometries/Drawable.java
@@ -1,6 +1,6 @@
 package org.oscim.layers.vector.geometries;
 
-import com.vividsolutions.jts.geom.Geometry;
+import org.locationtech.jts.geom.Geometry;
 
 public interface Drawable {
 
diff --git a/vtm-jts/src/org/oscim/layers/vector/geometries/JtsDrawable.java b/vtm-jts/src/org/oscim/layers/vector/geometries/JtsDrawable.java
index e3a8faae..077e2170 100644
--- a/vtm-jts/src/org/oscim/layers/vector/geometries/JtsDrawable.java
+++ b/vtm-jts/src/org/oscim/layers/vector/geometries/JtsDrawable.java
@@ -1,9 +1,8 @@
 package org.oscim.layers.vector.geometries;
 
-import com.vividsolutions.jts.geom.Geometry;
-import com.vividsolutions.jts.geom.GeometryFactory;
-import com.vividsolutions.jts.geom.impl.PackedCoordinateSequenceFactory;
-
+import org.locationtech.jts.geom.Geometry;
+import org.locationtech.jts.geom.GeometryFactory;
+import org.locationtech.jts.geom.impl.PackedCoordinateSequenceFactory;
 import org.oscim.core.GeoPoint;
 import org.oscim.utils.geom.GeomBuilder;
 
diff --git a/vtm-jts/src/org/oscim/layers/vector/geometries/LineDrawable.java b/vtm-jts/src/org/oscim/layers/vector/geometries/LineDrawable.java
index 8d91fcf5..c77396c8 100644
--- a/vtm-jts/src/org/oscim/layers/vector/geometries/LineDrawable.java
+++ b/vtm-jts/src/org/oscim/layers/vector/geometries/LineDrawable.java
@@ -1,8 +1,7 @@
 package org.oscim.layers.vector.geometries;
 
-import com.vividsolutions.jts.geom.Geometry;
-import com.vividsolutions.jts.geom.LineString;
-
+import org.locationtech.jts.geom.Geometry;
+import org.locationtech.jts.geom.LineString;
 import org.oscim.core.GeoPoint;
 
 import java.util.List;
diff --git a/vtm-jts/src/org/oscim/layers/vector/geometries/PolygonDrawable.java b/vtm-jts/src/org/oscim/layers/vector/geometries/PolygonDrawable.java
index b83079af..0367d599 100644
--- a/vtm-jts/src/org/oscim/layers/vector/geometries/PolygonDrawable.java
+++ b/vtm-jts/src/org/oscim/layers/vector/geometries/PolygonDrawable.java
@@ -1,7 +1,6 @@
 package org.oscim.layers.vector.geometries;
 
-import com.vividsolutions.jts.geom.Geometry;
-
+import org.locationtech.jts.geom.Geometry;
 import org.oscim.core.GeoPoint;
 import org.oscim.utils.geom.GeomBuilder;
 
diff --git a/vtm-jts/src/org/oscim/utils/geom/GeomBuilder.java b/vtm-jts/src/org/oscim/utils/geom/GeomBuilder.java
index ff46acaa..f98ea474 100644
--- a/vtm-jts/src/org/oscim/utils/geom/GeomBuilder.java
+++ b/vtm-jts/src/org/oscim/utils/geom/GeomBuilder.java
@@ -14,18 +14,18 @@
  */
 package org.oscim.utils.geom;
 
-import com.vividsolutions.jts.geom.Coordinate;
-import com.vividsolutions.jts.geom.Geometry;
-import com.vividsolutions.jts.geom.GeometryCollection;
-import com.vividsolutions.jts.geom.GeometryFactory;
-import com.vividsolutions.jts.geom.LineString;
-import com.vividsolutions.jts.geom.LinearRing;
-import com.vividsolutions.jts.geom.MultiLineString;
-import com.vividsolutions.jts.geom.MultiPoint;
-import com.vividsolutions.jts.geom.MultiPolygon;
-import com.vividsolutions.jts.geom.Point;
-import com.vividsolutions.jts.geom.Polygon;
-import com.vividsolutions.jts.geom.PrecisionModel;
+import org.locationtech.jts.geom.Coordinate;
+import org.locationtech.jts.geom.Geometry;
+import org.locationtech.jts.geom.GeometryCollection;
+import org.locationtech.jts.geom.GeometryFactory;
+import org.locationtech.jts.geom.LineString;
+import org.locationtech.jts.geom.LinearRing;
+import org.locationtech.jts.geom.MultiLineString;
+import org.locationtech.jts.geom.MultiPoint;
+import org.locationtech.jts.geom.MultiPolygon;
+import org.locationtech.jts.geom.Point;
+import org.locationtech.jts.geom.Polygon;
+import org.locationtech.jts.geom.PrecisionModel;
 
 import java.lang.reflect.Array;
 import java.util.ArrayDeque;