File tree Expand file tree Collapse file tree 4 files changed +69
-1
lines changed
resources/META-INF/services
test/groovy/geoscript/geom/io Expand file tree Collapse file tree 4 files changed +69
-1
lines changed Original file line number Diff line number Diff line change 1+ package geoscript.geom.io
2+
3+ import geoscript.geom.Geometry
4+ import org.geotools.data.postgis.TWKBReader
5+ import org.locationtech.jts.geom.GeometryFactory
6+ import org.locationtech.jts.io.WKBReader
7+
8+ /**
9+ * Read a {@link geoscript.geom.Geometry Geometry } from a TWKB hex String or byte array.
10+ * <p ><blockquote ><pre >
11+ * TWkbReader reader = new TWkbReader()
12+ * {@link geoscript.geom.Point Point } pt = reader.read("01000204")
13+ *
14+ * POINT (1 2)
15+ * </pre></blockquote></p>
16+ * @author Jared Erickson
17+ */
18+ class TWkbReader implements Reader {
19+
20+ /**
21+ * The GeoTools TWKBReader
22+ */
23+ private final static TWKBReader reader = new TWKBReader (new GeometryFactory ())
24+
25+ /**
26+ * Read a Geometry from a String
27+ * @param str The String
28+ * @return A Geometry
29+ */
30+ Geometry read (String str ) {
31+ read(WKBReader . hexToBytes(str))
32+ }
33+
34+ /**
35+ * Read a Geometry from a byte array
36+ * @param bytes The byte array
37+ * @return A Geometry
38+ */
39+ Geometry read (byte [] bytes ) {
40+ Geometry . wrap(reader. read(bytes))
41+ }
42+
43+ }
Original file line number Diff line number Diff line change @@ -8,4 +8,5 @@ geoscript.geom.io.KmlReader
88geoscript.geom.io.WkbReader
99geoscript.geom.io.WktReader
1010geoscript.geom.io.GeoPackageReader
11- geoscript.geom.io.GooglePolylineEncoder
11+ geoscript.geom.io.GooglePolylineEncoder
12+ geoscript.geom.io.TWkbReader
Original file line number Diff line number Diff line change @@ -19,6 +19,12 @@ class ReadersTestCase {
1919 Reader reader = Readers . find(" wkt" )
2020 assertNotNull reader
2121
22+ reader = Readers . find(" wkb" )
23+ assertNotNull reader
24+
25+ reader = Readers . find(" twkb" )
26+ assertNotNull reader
27+
2228 reader = Readers . find(" asdf" )
2329 assertNull reader
2430 }
Original file line number Diff line number Diff line change 1+ package geoscript.geom.io
2+
3+ import geoscript.geom.Geometry
4+ import org.junit.Test
5+ import static org.junit.Assert.assertEquals
6+
7+ class TWkbReaderTestCase {
8+
9+ @Test
10+ void read () {
11+ TWkbReader reader = new TWkbReader ()
12+ Geometry geometry = reader. read(" 01000204" )
13+ assertEquals (" POINT (1 2)" , geometry. wkt)
14+ geometry = reader. read(" 01000204" . decodeHex())
15+ assertEquals (" POINT (1 2)" , geometry. wkt)
16+ }
17+
18+ }
You can’t perform that action at this time.
0 commit comments