private JSONBuilder writeGeomCollection(GeometryCollection collection) { this.key("geometries"); this.array(); for (int i = 0, n = collection.getNumGeometries(); i < n; i++) { writeGeom(collection.getGeometryN(i)); } return this.endArray(); }
@Test public void testWriteGeometrySubclass() throws Exception { builder.writeGeom(new MyPoint(1, 2)); assertEquals("{\"type\":\"Point\",\"coordinates\":[1,2]}", writer.toString()); }
@Test public void testWrite3DPolygon() throws Exception { Geometry g = new WKTReader() .read( "POLYGON((0 0 0, 0 10 1, 10 10 2, 10 0 3, 0 0 0),(1 1 4, 1 2 5, 2 2 6, 2 1 7, 1 1 4))"); builder.writeGeom(g); assertEquals( "{\"type\":\"Polygon\",\"coordinates\":[[[0,0,0],[0,10,1],[10,10,2],[10,0,3],[0,0,0]],[[1,1,4],[1,2,5],[2,2,6],[2,1,7],[1,1,4]]]}", writer.toString()); }
@Test public void testWriteMultiLineM() throws Exception { Geometry g = new WKTReader().read("MULTILINESTRING M ((1 2 4,5 6 8))"); builder.writeGeom(g); assertEquals( "{\"type\":\"MultiLineString\",\"coordinates\":[[[1,2,0,4],[5,6,0,8]]]}", writer.toString()); }
@Test public void testWriteGeomCollection() throws Exception { Geometry g = new WKTReader().read("GEOMETRYCOLLECTION(POINT(2 0),POINT(7 1))"); builder.writeGeom(g); assertEquals( "{\"type\":\"GeometryCollection\",\"geometries\":[{\"type\":\"Point\",\"coordinates\":[2,0]},{\"type\":\"Point\",\"coordinates\":[7,1]}]}", writer.toString()); }
@Test public void testWriteMultiLineZM() throws Exception { Geometry g = new WKTReader().read("MULTILINESTRING ZM ((1 2 3 4,5 6 7 8))"); builder.writeGeom(g); assertEquals( "{\"type\":\"MultiLineString\",\"coordinates\":[[[1,2,3,4],[5,6,7,8]]]}", writer.toString()); }
@Test public void testWriteMultiPointZM() throws Exception { Geometry g = new WKTReader().read("MULTIPOINT ZM (2 0 20 2, 1 1 1 1)"); builder.writeGeom(g); assertEquals( "{\"type\":\"MultiPoint\",\"coordinates\":[[2,0,20,2],[1,1,1,1]]}", writer.toString()); }
@Test public void testWriteMultiPolygonZM() throws Exception { Geometry g = new WKTReader().read("MULTIPOLYGON ZM (((0 0 3 1,1 1 7 2,1 0 7 3,0 0 3 1)))"); builder.writeGeom(g); assertEquals( "{\"type\":\"MultiPolygon\",\"coordinates\":[[[[0,0,3,1],[1,1,7,2],[1,0,7,3],[0,0,3,1]]]]}", writer.toString()); }
@Test public void testWrite3DPoint() throws Exception { Geometry g = new WKTReader().read("POINT(2 0 20)"); builder.writeGeom(g); assertEquals("{\"type\":\"Point\",\"coordinates\":[2,0,20]}", writer.toString()); }
@Test public void testWritePointM() throws Exception { Geometry g = new WKTReader().read("POINT M (2 0 20)"); builder.writeGeom(g); assertEquals("{\"type\":\"Point\",\"coordinates\":[2,0,0,20]}", writer.toString()); }
@Test public void testWriteMultiPointM() throws Exception { Geometry g = new WKTReader().read("MULTIPOINT M (2 0 20, 1 1 1)"); builder.writeGeom(g); assertEquals( "{\"type\":\"MultiPoint\",\"coordinates\":[[2,0,0,20],[1,1,0,1]]}", writer.toString()); }
@Test public void testWriteLineZM() throws Exception { Geometry g = new WKTReader().read("LINESTRING ZM (0 0 0 0, 0 10 1 1, 10 10 2 2)"); builder.writeGeom(g); assertEquals( "{\"type\":\"LineString\",\"coordinates\":[[0,0,0,0],[0,10,1,1],[10,10,2,2]]}", writer.toString()); }
@Test public void testWriteNormal() throws Exception { Geometry g = new WKTReader().read("MULTILINESTRING((0 0, 1 1))"); builder.writeGeom(g); assertEquals( "{\"type\":\"MultiLineString\",\"coordinates\":[[[0,0],[1,1]]]}", writer.toString()); }
@Test public void testWrite3DLine() throws Exception { Geometry g = new WKTReader().read("LINESTRING(0 0 0, 0 10 1, 10 10 2, 10 0 3, 0 0 0)"); builder.writeGeom(g); assertEquals( "{\"type\":\"LineString\",\"coordinates\":[[0,0,0],[0,10,1],[10,10,2],[10,0,3],[0,0,0]]}", writer.toString()); }
@Test public void testWritePointZM() throws Exception { Geometry g = new WKTReader().read("POINT ZM (2 0 20 2)"); builder.writeGeom(g); assertEquals("{\"type\":\"Point\",\"coordinates\":[2,0,20,2]}", writer.toString()); }
@Test public void testWriteMultiPolygonM() throws Exception { Geometry g = new WKTReader().read("MULTIPOLYGON M (((0 0 1,1 1 2,1 0 3,0 0 1)))"); builder.writeGeom(g); assertEquals( "{\"type\":\"MultiPolygon\",\"coordinates\":[[[[0,0,0,1],[1,1,0,2],[1,0,0,3],[0,0,0,1]]]]}", writer.toString()); } }
@Test public void testWritePolygonZM() throws Exception { Geometry g = new WKTReader() .read( "POLYGON ZM " + "((0 0 0 3, 0 10 1 3, 10 10 2 3, 10 0 3 3, 0 0 0 3)," + "(1 1 4 3, 1 2 5 3, 2 2 6 3, 2 1 7 3, 1 1 4 3))"); builder.writeGeom(g); assertEquals( "{\"type\":\"Polygon\",\"coordinates\":[[[0,0,0,3],[0,10,1,3],[10,10,2,3],[10,0,3,3],[0,0,0,3]]" + ",[[1,1,4,3],[1,2,5,3],[2,2,6,3],[2,1,7,3],[1,1,4,3]]]}", writer.toString()); }
@Test public void testNumberOfDecimalsFor3dPolygon() throws Exception { builder.setNumberOfDecimals(0); Geometry g = new WKTReader() .read( "POLYGON((0.1 0.2 0.3, 0.1 10.1 1.1, 10.2 10.3 2.4, 9.5 0.4 3, 0.1 0.2 0.3),(1 1 4, 1 2 5, 2 2 6, 2 1 7, 1 1 4))"); builder.writeGeom(g); assertEquals( "{\"type\":\"Polygon\",\"coordinates\":[[[0,0,0],[0,10,1],[10,10,2],[10,0,3],[0,0,0]],[[1,1,4],[1,2,5],[2,2,6],[2,1,7],[1,1,4]]]}", writer.toString()); }
@Test public void testNumberOfDecimalsFor3dPoint() throws Exception { builder.setNumberOfDecimals(2); Geometry g = new WKTReader().read("POINT(2.1234 0.1234 20.9999)"); builder.writeGeom(g); assertEquals("{\"type\":\"Point\",\"coordinates\":[2.12,0.12,21]}", writer.toString()); }
@Test public void testNumberOfDecimalsFor3dLine() throws Exception { builder.setNumberOfDecimals(3); Geometry g = new WKTReader() .read( "LINESTRING(1E-3 1E-4 1E-5, 0 10.12312321 1.000002, 10.1 10.2 2.0, 10 0 3, 0 0 0)"); builder.writeGeom(g); assertEquals( "{\"type\":\"LineString\",\"coordinates\":[[0.001,0,0],[0,10.123,1],[10.1,10.2,2],[10,0,3],[0,0,0]]}", writer.toString()); }