# HG changeset patch # User casties # Date 1422294688 -3600 # Node ID ed51eadc82c50c638f82d4947be89f450428b66e # Parent 6bf38b5e30a8f8881425d106f6406ebfec90f6ca add polyline annotation shape. diff -r 6bf38b5e30a8 -r ed51eadc82c5 src/main/java/de/mpiwg/itgroup/annotations/restlet/AnnotatorResourceImpl.java --- a/src/main/java/de/mpiwg/itgroup/annotations/restlet/AnnotatorResourceImpl.java Fri Jan 23 17:24:53 2015 +0100 +++ b/src/main/java/de/mpiwg/itgroup/annotations/restlet/AnnotatorResourceImpl.java Mon Jan 26 18:51:28 2015 +0100 @@ -464,7 +464,24 @@ } } // TODO: add units/crs to wkt + // assume polygon with outer ring fragment = String.format("wkt=POLYGON((%s))", coords); + } else if (type.equalsIgnoreCase("linestring")) { + // linestring (polyline) shape + JSONArray coordArray = geom.getJSONArray("coordinates"); + StringBuilder coords = new StringBuilder(); + int numCoords = coordArray.length(); + for (int i = 0; i < numCoords; ++i) { + JSONArray coordPair = coordArray.getJSONArray(i); + coords.append(coordPair.getString(0)); + coords.append(" "); + coords.append(coordPair.getString(1)); + if (i < numCoords-1) { + coords.append(", "); + } + } + // TODO: add units/crs to wkt + fragment = String.format("wkt=LINESTRING(%s)", coords); } else { logger.severe("Unable to parse this shape: " + shape); }