package org.ianturton.cookbook.output; import com.vividsolutions.jts.geom.Coordinate; import com.vividsolutions.jts.geom.Geometry; import com.vividsolutions.jts.geom.GeometryFactory; import com.vividsolutions.jts.geom.LineString; import com.vividsolutions.jts.geom.MultiPolygon; import com.vividsolutions.jts.geom.Point; import com.vividsolutions.jts.geom.Polygon; public class ExportGeometries { public static void main(String[] args) { GeometryFactory fac = new GeometryFactory(); Point p = fac.createPoint(new Coordinate(10.1, 22.2)); System.out.println(getWKT(p)); // System.out.println(getCoordinates(p)); Coordinate[] coordinates = { new Coordinate(1, 1), new Coordinate(2, 3), new Coordinate(4.4, 5.2) }; LineString line = fac.createLineString(coordinates); System.out.println(getWKT(line)); // System.out.println(getCoordinates(line)); Coordinate[] pcoordinates = { new Coordinate(1, 1), new Coordinate(2, 3), new Coordinate(4.4, 5.2), new Coordinate(1, 1) }; Polygon poly = fac.createPolygon(pcoordinates); System.out.println(getWKT(poly)); // System.out.println(getCoordinates(poly)); Coordinate[] pcoordinates2 = { new Coordinate(10, 10), new Coordinate(20, 30), new Coordinate(40.4, 50.2), new Coordinate(10, 10) }; Polygon poly2 = fac.createPolygon(pcoordinates2); MultiPolygon multiPoly = fac .createMultiPolygon(new Polygon[] { poly, poly2 }); System.out.println(getWKT(multiPoly)); // System.out.println(getCoordinates(multiPoly)); } static String getWKT(Geometry geom) { return geom.toText(); } static String getCoordinates(Geometry geom) { StringBuilder builder = new StringBuilder(); if (geom.getNumGeometries() > 1) { for (int i = 0; i < geom.getNumGeometries(); i++) { builder.append(getCoordinates(geom.getGeometryN(i))); builder.append("\n"); } } else { Coordinate[] coords = geom.getCoordinates(); boolean first = true; for (Coordinate coord : coords) { if (!first) { builder.append(','); } first = false; builder.append(getCoord(coord)); } } return builder.toString(); } private static String getCoord(Coordinate coord) { StringBuilder builder = new StringBuilder(); builder.append(coord.x).append(",").append(coord.y); return builder.toString(); } }