Map<String, Object> createMultiLine(MultiLineString mline) { LinkedHashMap obj = new LinkedHashMap(); obj.put("type", "MultiLineString"); obj.put("coordinates", toList(mline)); return obj; }
Map<String, Object> createPolygon(Polygon poly) { LinkedHashMap obj = new LinkedHashMap(); obj.put("type", "Polygon"); obj.put("coordinates", toList(poly)); return obj; }
Map<String, Object> createMultiPoint(MultiPoint mpoint) { LinkedHashMap obj = new LinkedHashMap(); obj.put("type", "MultiPoint"); obj.put("coordinates", toList(mpoint)); return obj; }
Map<String, Object> createMultiPolygon(MultiPolygon mpoly) { LinkedHashMap obj = new LinkedHashMap(); obj.put("type", "MultiPolygon"); obj.put("coordinates", toList(mpoly)); return obj; }
List toList(GeometryCollection mgeom) { ArrayList list = new ArrayList(mgeom.getNumGeometries()); for (int i = 0; i < mgeom.getNumGeometries(); i++) { Geometry g = mgeom.getGeometryN(i); if (g instanceof Polygon) { list.add(toList((Polygon) g)); } else if (g instanceof LineString) { list.add( new CoordinateSequenceEncoder( ((LineString) g).getCoordinateSequence(), scale)); } else if (g instanceof Point) { list.add(new CoordinateSequenceEncoder(((Point) g).getCoordinateSequence(), scale)); } } return list; }
Map<String,Object> createMultiPoint(MultiPoint mpoint) { LinkedHashMap obj = new LinkedHashMap(); obj.put("type", "MultiPoint"); obj.put("coordinates", toList(mpoint)); return obj; }
Map<String,Object> createMultiLine(MultiLineString mline) { LinkedHashMap obj = new LinkedHashMap(); obj.put("type", "MultiLineString"); obj.put("coordinates", toList(mline)); return obj; }
Map<String,Object> createPolygon(Polygon poly) { LinkedHashMap obj = new LinkedHashMap(); obj.put("type", "Polygon"); obj.put("coordinates", toList(poly)); return obj; }
Map<String,Object> createMultiPolygon(MultiPolygon mpoly) { LinkedHashMap obj = new LinkedHashMap(); obj.put("type", "MultiPolygon"); obj.put("coordinates", toList(mpoly)); return obj; }
List toList(GeometryCollection mgeom) { ArrayList list = new ArrayList(mgeom.getNumGeometries()); for (int i = 0; i < mgeom.getNumGeometries(); i++) { Geometry g = mgeom.getGeometryN(i); if (g instanceof Polygon) { list.add(toList((Polygon)g)); } else if (g instanceof LineString){ list.add(new CoordinateSequenceEncoder(((LineString)g).getCoordinateSequence(), scale)); } else if (g instanceof Point) { list.add(new CoordinateSequenceEncoder(((Point)g).getCoordinateSequence(), scale)); } } return list; } static class CoordinateSequenceEncoder implements JSONAware /*, JSONStreamAware*/ {