Java Code Examples for com.vividsolutions.jts.geom.MultiPolygon
The following examples show how to use
com.vividsolutions.jts.geom.MultiPolygon.
These examples are extracted from open source projects.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source Project: sldeditor Author: robward-scisys File: AllowedAttributeTypes.java License: GNU General Public License v3.0 | 6 votes |
/** * Initialise. */ private static void initialise() { List<Class<?> > doubleList = new ArrayList<Class<?> >(Arrays.asList(Integer.class, Long.class, Double.class, Float.class)); List<Class<?> > integerList = new ArrayList<Class<?> >(Arrays.asList(Integer.class, Long.class)); List<Class<?> > stringList = new ArrayList<Class<?> >(Arrays.asList(String.class)); List<Class<?> > geometryList = new ArrayList<Class<?> >(Arrays.asList(Point.class, LineString.class, Polygon.class, MultiPolygon.class, MultiPoint.class, MultiLineString.class)); allowedClassTypeMap.put(String.class, stringList); allowedClassTypeMap.put(Double.class, doubleList); allowedClassTypeMap.put(Float.class, doubleList); allowedClassTypeMap.put(Integer.class, integerList); allowedClassTypeMap.put(Long.class, integerList); allowedClassTypeMap.put(Geometry.class, geometryList); List<Class<?> > objectList = new ArrayList<Class<?>>(); objectList.addAll(doubleList); objectList.addAll(integerList); objectList.addAll(stringList); objectList.addAll(geometryList); allowedClassTypeMap.put(Object.class, objectList); }
Example #2
Source Project: dhis2-core Author: dhis2 File: GeoToolsPrimitiveFromJsonFactory.java License: BSD 3-Clause "New" or "Revised" License | 6 votes |
/** * Create a GeoTools geometric multi-polygon primitive from coordinates in * json. * * @param json the json array of polygons * @return the multi-polygon */ public static MultiPolygon createMultiPolygonFromJson( JsonNode json ) { // Native array of polygons to pass to GeoFactory Polygon[] polygons = new Polygon[MapUtils.getNonEmptyNodes( json )]; // Read all the polygons from the json array for ( int i = 0; i < json.size(); i++ ) { JsonNode node = json.get( i ); if ( MapUtils.nodeIsNonEmpty( node ) ) { polygons[i] = createPolygonFromJson( node ); } } // Create the multi-polygon from factory return FACTORY.createMultiPolygon( polygons ); }
Example #3
Source Project: gama Author: gama-platform File: GamaShape.java License: GNU General Public License v3.0 | 6 votes |
@Override public GamaShape getExteriorRing(final IScope scope) { // WARNING Only in 2D Geometry result = getInnerGeometry(); if (result instanceof Polygon) { result = ((Polygon) result).getExteriorRing(); } else if (result instanceof MultiPolygon) { final MultiPolygon mp = (MultiPolygon) result; final LineString lines[] = new LineString[mp.getNumGeometries()]; for (int i = 0; i < mp.getNumGeometries(); i++) { lines[i] = ((Polygon) mp.getGeometryN(i)).getExteriorRing(); } result = GEOMETRY_FACTORY.createMultiLineString(lines); } return new GamaShape(result); }
Example #4
Source Project: gama Author: gama-platform File: GamaGisFile.java License: GNU General Public License v3.0 | 6 votes |
protected Geometry multiPolygonManagement(final Geometry geom) { if (geom instanceof MultiPolygon) { final Polygon gs[] = new Polygon[geom.getNumGeometries()]; for (int i = 0; i < geom.getNumGeometries(); i++) { final Polygon p = (Polygon) geom.getGeometryN(i); final ICoordinates coords = GeometryUtils.getContourCoordinates(p); final LinearRing lr = GEOMETRY_FACTORY.createLinearRing(coords.toCoordinateArray()); try (final Collector.AsList<LinearRing> holes = Collector.getList()) { for (int j = 0; j < p.getNumInteriorRing(); j++) { final LinearRing h = (LinearRing) p.getInteriorRingN(j); if (!hasNullElements(h.getCoordinates())) { holes.add(h); } } LinearRing[] stockArr = new LinearRing[holes.size()]; stockArr = holes.items().toArray(stockArr); gs[i] = GEOMETRY_FACTORY.createPolygon(lr, stockArr); } } return GEOMETRY_FACTORY.createMultiPolygon(gs); } return geom; }
Example #5
Source Project: gama Author: gama-platform File: GamaKmlExport.java License: GNU General Public License v3.0 | 6 votes |
/** * Add a placemark with a geometry object.The geometry can be a Point, a Line, a Polygon or any Multi-geometry. * Points will be represented by an icon and linear or surface objects will be drawn. * * @param label * The title of the folder that will be created for this ShpRecord * @param beginDate * Begining date of the timespan * @param endDate * End date of the timespan * @param geom * Geometry object to be drawn * @param height * Height of the feature to draw. If > 0 the feature will be shown extruded to the given height * (relative to the ground level). If <= 0 the feature will be drawn flat on the ground. */ public void addGeometry(final IScope scope, final String label, final String beginDate, final String endDate, final IShape shape, final String styleName, final double height) { final Placemark placemark = fold.createAndAddPlacemark().withStyleUrl("#" + styleName); placemark.setName(label); placemark.createAndSetTimeSpan().withBegin(beginDate).withEnd(endDate); final IShape shapeTM = Spatial.Projections.transform_CRS(scope, shape, "EPSG:4326"); final Geometry geom = shapeTM.getInnerGeometry(); if (geom instanceof Point) { addPoint(placemark, (Point) geom, height); } else if (geom instanceof LineString) { addLine(placemark, (LineString) geom, height); } else if (geom instanceof Polygon) { addPolygon(placemark, (Polygon) geom, height); } else if (geom instanceof MultiPoint) { addMultiPoint(placemark, (MultiPoint) geom, height); } else if (geom instanceof MultiLineString) { addMultiLine(placemark, (MultiLineString) geom, height); } else if (geom instanceof MultiPolygon) { addMultiPolygon(placemark, (MultiPolygon) geom, height); } }
Example #6
Source Project: gama Author: gama-platform File: SaveStatement.java License: GNU General Public License v3.0 | 6 votes |
public static String getGeometryType(final List<? extends IShape> agents) { String geomType = ""; for (final IShape be : agents) { final IShape geom = be.getGeometry(); if (geom != null && geom.getInnerGeometry() != null) { geomType = geom.getInnerGeometry().getClass().getSimpleName(); if (geom.getInnerGeometry().getNumGeometries() > 1) { if (geom.getInnerGeometry().getGeometryN(0).getClass() == Point.class) { geomType = MultiPoint.class.getSimpleName(); } else if (geom.getInnerGeometry().getGeometryN(0).getClass() == LineString.class) { geomType = MultiLineString.class.getSimpleName(); } else if (geom.getInnerGeometry().getGeometryN(0).getClass() == Polygon.class) { geomType = MultiPolygon.class.getSimpleName(); } break; } } } if ("DynamicLineString".equals(geomType)) { geomType = LineString.class.getSimpleName(); } return geomType; }
Example #7
Source Project: jts Author: metteo File: StaticMultiPolygonTest.java License: GNU Lesser General Public License v2.1 | 6 votes |
/** * Round Trip test for a single MultiPolygon with lotsa points * @throws ParserConfigurationException * @throws IOException * @throws SAXException */ public void testSingleMultiPolygonManyPointsNoHoleRoundTrip() throws SAXException, IOException, ParserConfigurationException{ PolygonGenerator pgc = new PolygonGenerator(); pgc.setGeometryFactory(geometryFactory); pgc.setGenerationAlgorithm(PolygonGenerator.BOX); pgc.setNumberPoints(1000); MultiGenerator pg = new MultiGenerator(pgc); pg.setBoundingBox(new Envelope(0,10,0,10)); pg.setNumberGeometries(3); pg.setGeometryFactory(geometryFactory); MultiPolygon pt = (MultiPolygon) pg.create(); checkRoundTrip(pt); }
Example #8
Source Project: jts Author: metteo File: StaticMultiPolygonTest.java License: GNU Lesser General Public License v2.1 | 6 votes |
/** * Round Trip test for a single MultiPolygon * @throws ParserConfigurationException * @throws IOException * @throws SAXException */ public void testSingleMultiPolygonHolesRoundTrip() throws SAXException, IOException, ParserConfigurationException{ PolygonGenerator pgc = new PolygonGenerator(); pgc.setGeometryFactory(geometryFactory); pgc.setGenerationAlgorithm(PolygonGenerator.BOX); pgc.setNumberPoints(10); pgc.setNumberHoles(4); MultiGenerator pg = new MultiGenerator(pgc); pg.setBoundingBox(new Envelope(0,10,0,10)); pg.setNumberGeometries(3); pg.setGeometryFactory(geometryFactory); MultiPolygon pt = (MultiPolygon) pg.create(); checkRoundTrip(pt); }
Example #9
Source Project: jts Author: metteo File: StaticMultiPolygonTest.java License: GNU Lesser General Public License v2.1 | 6 votes |
/** * Round Trip test for a single MultiPolygon with lotsa points * @throws ParserConfigurationException * @throws IOException * @throws SAXException */ public void testSingleMultiPolygonManyPointsHolesRoundTrip() throws SAXException, IOException, ParserConfigurationException{ PolygonGenerator pgc = new PolygonGenerator(); pgc.setGeometryFactory(geometryFactory); pgc.setGenerationAlgorithm(PolygonGenerator.BOX); pgc.setNumberPoints(1000); pgc.setNumberHoles(4); MultiGenerator pg = new MultiGenerator(pgc); pg.setBoundingBox(new Envelope(0,10,0,10)); pg.setNumberGeometries(3); pg.setGeometryFactory(geometryFactory); MultiPolygon pt = (MultiPolygon) pg.create(); // System.out.println((pt==null?"NULL":pt.toString())); checkRoundTrip(pt); }
Example #10
Source Project: jts Author: metteo File: StaticMultiPolygonTest.java License: GNU Lesser General Public License v2.1 | 6 votes |
/** * Round Trip test for a single MultiPolygon with lotsa points * @throws ParserConfigurationException * @throws IOException * @throws SAXException */ public void testSingleMultiPolygonManyPointsManyHolesRoundTrip() throws SAXException, IOException, ParserConfigurationException{ PolygonGenerator pgc = new PolygonGenerator(); pgc.setGeometryFactory(geometryFactory); pgc.setGenerationAlgorithm(PolygonGenerator.BOX); pgc.setNumberPoints(100); pgc.setNumberHoles(100); MultiGenerator pg = new MultiGenerator(pgc); pg.setBoundingBox(new Envelope(0,10,0,10)); pg.setNumberGeometries(3); pg.setGeometryFactory(geometryFactory); MultiPolygon pt = (MultiPolygon) pg.create(); // System.out.println((pt==null?"NULL":pt.toString())); checkRoundTrip(pt); }
Example #11
Source Project: jts Author: metteo File: OraReader.java License: GNU Lesser General Public License v2.1 | 6 votes |
/** * Create MultiPolygon as encoded by elemInfo. * * @param oraGeom SDO_GEOMETRY attributes being read * @param coords the coordinates of the entire geometry * @return MultiPolygon */ private MultiPolygon readMultiPolygon(OraGeom oraGeom) { int nElem = oraGeom.numElements(); List geoms = new ArrayList(); for (int i = 0; i < nElem; i++) { int etype = oraGeom.eType(i); if ((etype == OraGeom.ETYPE.POLYGON) || (etype == OraGeom.ETYPE.POLYGON_EXTERIOR)) { Polygon poly = readPolygon(oraGeom, i); i += poly.getNumInteriorRing(); // skip interior rings geoms.add(poly); } else { // not a Polygon - stop reading break; } } MultiPolygon polys = geometryFactory.createMultiPolygon(GeometryFactory.toPolygonArray(geoms)); return polys; }
Example #12
Source Project: jts Author: metteo File: OraGeom.java License: GNU Lesser General Public License v2.1 | 6 votes |
/** * Returns the GTYPE GEOM_TYPE code * corresponding to the geometry type. * * @see OraGeom.GEOM_TYPE * * @param geom the geometry to compute the GEOM_TYPE for * @return geom type code, if known, or UNKNOWN */ static int geomType(Geometry geom) { if (geom == null) { return OraGeom.GEOM_TYPE.UNKNOWN_GEOMETRY; } else if (geom instanceof Point) { return OraGeom.GEOM_TYPE.POINT; } else if (geom instanceof LineString) { return OraGeom.GEOM_TYPE.LINE; } else if (geom instanceof Polygon) { return OraGeom.GEOM_TYPE.POLYGON; } else if (geom instanceof MultiPoint) { return OraGeom.GEOM_TYPE.MULTIPOINT; } else if (geom instanceof MultiLineString) { return OraGeom.GEOM_TYPE.MULTILINE; } else if (geom instanceof MultiPolygon) { return OraGeom.GEOM_TYPE.MULTIPOLYGON; } else if (geom instanceof GeometryCollection) { return OraGeom.GEOM_TYPE.COLLECTION; } return OraGeom.GEOM_TYPE.UNKNOWN_GEOMETRY; }
Example #13
Source Project: jts Author: metteo File: WKBWriter.java License: GNU Lesser General Public License v2.1 | 6 votes |
/** * Writes a {@link Geometry} to an {@link OutStream}. * * @param geom the geometry to write * @param os the out stream to write to * @throws IOException if an I/O error occurs */ public void write(Geometry geom, OutStream os) throws IOException { if (geom instanceof Point) writePoint((Point) geom, os); // LinearRings will be written as LineStrings else if (geom instanceof LineString) writeLineString((LineString) geom, os); else if (geom instanceof Polygon) writePolygon((Polygon) geom, os); else if (geom instanceof MultiPoint) writeGeometryCollection(WKBConstants.wkbMultiPoint, (MultiPoint) geom, os); else if (geom instanceof MultiLineString) writeGeometryCollection(WKBConstants.wkbMultiLineString, (MultiLineString) geom, os); else if (geom instanceof MultiPolygon) writeGeometryCollection(WKBConstants.wkbMultiPolygon, (MultiPolygon) geom, os); else if (geom instanceof GeometryCollection) writeGeometryCollection(WKBConstants.wkbGeometryCollection, (GeometryCollection) geom, os); else { Assert.shouldNeverReachHere("Unknown Geometry type"); } }
Example #14
Source Project: jts Author: metteo File: WKTWriter.java License: GNU Lesser General Public License v2.1 | 6 votes |
/** * Converts a <code>MultiPolygon</code> to <MultiPolygon Text> format, * then appends it to the writer. * *@param multiPolygon the <code>MultiPolygon</code> to process *@param writer the output writer to append to */ private void appendMultiPolygonText(MultiPolygon multiPolygon, int level, Writer writer) throws IOException { if (multiPolygon.isEmpty()) { writer.write("EMPTY"); } else { int level2 = level; boolean doIndent = false; writer.write("("); for (int i = 0; i < multiPolygon.getNumGeometries(); i++) { if (i > 0) { writer.write(", "); level2 = level + 1; doIndent = true; } appendPolygonText((Polygon) multiPolygon.getGeometryN(i), level2, doIndent, writer); } writer.write(")"); } }
Example #15
Source Project: jts Author: metteo File: WKTWriterTest.java License: GNU Lesser General Public License v2.1 | 6 votes |
public void testWriteMultiPolygon() throws Exception { Coordinate[] coordinates1 = { new Coordinate(10, 10, 0), new Coordinate(10, 20, 0), new Coordinate(20, 20, 0), new Coordinate(20, 15, 0), new Coordinate(10, 10, 0) }; LinearRing linearRing1 = geometryFactory.createLinearRing(coordinates1); Polygon polygon1 = geometryFactory.createPolygon(linearRing1, new LinearRing[] { }); Coordinate[] coordinates2 = { new Coordinate(60, 60, 0), new Coordinate(70, 70, 0), new Coordinate(80, 60, 0), new Coordinate(60, 60, 0) }; LinearRing linearRing2 = geometryFactory.createLinearRing(coordinates2); Polygon polygon2 = geometryFactory.createPolygon(linearRing2, new LinearRing[] { }); Polygon[] polygons = {polygon1, polygon2}; MultiPolygon multiPolygon = geometryFactory.createMultiPolygon(polygons); // System.out.println("MULTIPOLYGON (((10 10, 10 20, 20 20, 20 15, 10 10)), ((60 60, 70 70, 80 60, 60 60)))"); // System.out.println(writer.write(multiPolygon).toString()); assertEquals("MULTIPOLYGON (((10 10, 10 20, 20 20, 20 15, 10 10)), ((60 60, 70 70, 80 60, 60 60)))", writer.write(multiPolygon).toString()); }
Example #16
Source Project: geomajas-project-server Author: geomajas File: InternalFeatureCollection.java License: GNU Affero General Public License v3.0 | 6 votes |
private Class getGeometryBinding(LayerType layerType) { switch (layerType) { case LINESTRING: return Geometry.class; case MULTILINESTRING: return MultiLineString.class; case MULTIPOINT: return MultiPoint.class; case MULTIPOLYGON: return MultiPolygon.class; case POINT: return Point.class; case POLYGON: return Polygon.class; default: return Geometry.class; } }
Example #17
Source Project: geomajas-project-server Author: geomajas File: MultiPolygonWriter.java License: GNU Affero General Public License v3.0 | 6 votes |
/** * Writes the body for a <code>MultiPolygon</code> object. MultiPolygons are * encoded into SVG path elements. This function writes the different * polygons in one d-attribute of an SVG path element, separated by an 'M' * character. (in other words, it calls the super.writeBody for each * polygon). * * @param o The <code>MultiPolygon</code> to be encoded. */ public void writeObject(Object o, GraphicsDocument document, boolean asChild) throws RenderException { document.writeElement("vml:shape", asChild); document.writeAttribute("fill-rule", "evenodd"); document.writeAttributeStart("path"); MultiPolygon mpoly = (MultiPolygon) o; for (int i = 0; i < mpoly.getNumGeometries(); i++) { Polygon poly = (Polygon) mpoly.getGeometryN(i); LineString shell = poly.getExteriorRing(); int nHoles = poly.getNumInteriorRing(); document.writeClosedPathContent(shell.getCoordinates()); for (int j = 0; j < nHoles; j++) { document.writeClosedPathContent(poly.getInteriorRingN(j).getCoordinates()); } } document.writeAttributeEnd(); }
Example #18
Source Project: geomajas-project-server Author: geomajas File: MultiPolygonWriter.java License: GNU Affero General Public License v3.0 | 6 votes |
/** * Writes the body for a <code>MultiPolygon</code> object. MultiPolygons are * encoded into SVG path elements. This function writes the different * polygons in one d-attribute of an SVG path element, separated by an 'M' * character. (in other words, it calls the super.writeBody for each * polygon). * * @param o The <code>MultiPolygon</code> to be encoded. */ public void writeObject(Object o, GraphicsDocument document, boolean asChild) throws RenderException { document.writeElement("path", asChild); document.writeAttribute("fill-rule", "evenodd"); document.writeAttributeStart("d"); MultiPolygon mpoly = (MultiPolygon) o; for (int i = 0; i < mpoly.getNumGeometries(); i++) { Polygon poly = (Polygon) mpoly.getGeometryN(i); LineString shell = poly.getExteriorRing(); int nHoles = poly.getNumInteriorRing(); document.writeClosedPathContent(shell.getCoordinates()); for (int j = 0; j < nHoles; j++) { document.writeClosedPathContent(poly.getInteriorRingN(j).getCoordinates()); } } document.writeAttributeEnd(); }
Example #19
Source Project: geomajas-project-server Author: geomajas File: DtoConverterServiceImpl.java License: GNU Affero General Public License v3.0 | 6 votes |
/** * Convert a layer type to a geometry class. * * @param layerType * layer type * @return JTS class */ public Class<? extends com.vividsolutions.jts.geom.Geometry> toInternal(LayerType layerType) { switch (layerType) { case GEOMETRY: return com.vividsolutions.jts.geom.Geometry.class; case LINESTRING: return LineString.class; case MULTILINESTRING: return MultiLineString.class; case POINT: return Point.class; case MULTIPOINT: return MultiPoint.class; case POLYGON: return Polygon.class; case MULTIPOLYGON: return MultiPolygon.class; case RASTER: return null; default: throw new IllegalStateException("Don't know how to handle layer type " + layerType); } }
Example #20
Source Project: geomajas-project-server Author: geomajas File: DtoConverterServiceImpl.java License: GNU Affero General Public License v3.0 | 6 votes |
/** * Convert a geometry class to a layer type. * * @param geometryClass * JTS geometry class * @return Geomajas layer type */ public LayerType toDto(Class<? extends com.vividsolutions.jts.geom.Geometry> geometryClass) { if (geometryClass == LineString.class) { return LayerType.LINESTRING; } else if (geometryClass == MultiLineString.class) { return LayerType.MULTILINESTRING; } else if (geometryClass == Point.class) { return LayerType.POINT; } else if (geometryClass == MultiPoint.class) { return LayerType.MULTIPOINT; } else if (geometryClass == Polygon.class) { return LayerType.POLYGON; } else if (geometryClass == MultiPolygon.class) { return LayerType.MULTIPOLYGON; } else { return LayerType.GEOMETRY; } }
Example #21
Source Project: geomajas-project-server Author: geomajas File: LayerTypeConverterTest.java License: GNU Affero General Public License v3.0 | 6 votes |
@Test public void testConversion() { // dto -> internal for (LayerType layerType : LayerType.values()) { if (layerType != LayerType.RASTER) { Class<? extends Geometry> c = converterService.toInternal(layerType); Assert.assertEquals(layerType.name(), c.getSimpleName().toUpperCase()); } else { Assert.assertNull(converterService.toInternal(layerType)); } } // internal -> dto Assert.assertEquals(LayerType.POINT, converterService.toDto(Point.class)); Assert.assertEquals(LayerType.MULTIPOINT, converterService.toDto(MultiPoint.class)); Assert.assertEquals(LayerType.LINESTRING, converterService.toDto(LineString.class)); Assert.assertEquals(LayerType.MULTILINESTRING, converterService.toDto(MultiLineString.class)); Assert.assertEquals(LayerType.POLYGON, converterService.toDto(Polygon.class)); Assert.assertEquals(LayerType.MULTIPOLYGON, converterService.toDto(MultiPolygon.class)); Assert.assertEquals(LayerType.GEOMETRY, converterService.toDto(Geometry.class)); }
Example #22
Source Project: geomajas-project-server Author: geomajas File: GeometryConverterTest.java License: GNU Affero General Public License v3.0 | 6 votes |
@Test public void jtsEmptyToDto() throws GeomajasException { Geometry p = converter.toDto(createJtsEmpty(Point.class)); Assert.assertEquals(Geometry.POINT, p.getGeometryType()); Assert.assertTrue(GeometryService.isEmpty(p)); Geometry ls = converter.toDto(createJtsEmpty(LineString.class)); Assert.assertEquals(Geometry.LINE_STRING, ls.getGeometryType()); Assert.assertTrue(GeometryService.isEmpty(ls)); Geometry lr = converter.toDto(createJtsEmpty(LinearRing.class)); Assert.assertEquals(Geometry.LINEAR_RING, lr.getGeometryType()); Assert.assertTrue(GeometryService.isEmpty(lr)); Geometry po = converter.toDto(createJtsEmpty(Polygon.class)); Assert.assertEquals(Geometry.POLYGON, po.getGeometryType()); Assert.assertTrue(GeometryService.isEmpty(po)); assertThat(po.getGeometries()).isNull(); Geometry mp = converter.toDto(createJtsEmpty(MultiPoint.class)); Assert.assertEquals(Geometry.MULTI_POINT, mp.getGeometryType()); Assert.assertTrue(GeometryService.isEmpty(mp)); Geometry mpo = converter.toDto(createJtsEmpty(MultiPolygon.class)); Assert.assertEquals(Geometry.MULTI_POLYGON, mpo.getGeometryType()); Assert.assertTrue(GeometryService.isEmpty(mpo)); Geometry mls = converter.toDto(createJtsEmpty(MultiLineString.class)); Assert.assertEquals(Geometry.MULTI_LINE_STRING, mls.getGeometryType()); Assert.assertTrue(GeometryService.isEmpty(mls)); }
Example #23
Source Project: geomajas-project-server Author: geomajas File: GeometryConverterTest.java License: GNU Affero General Public License v3.0 | 6 votes |
@Test public void dtoEmptyToJts() throws GeomajasException { // Test DTO Point to JTS: LineString ls = (LineString) converter.toInternal(createDtoEmpty(Geometry.LINE_STRING)); Assert.assertTrue(ls.isEmpty()); LinearRing lr = (LinearRing) converter.toInternal(createDtoEmpty(Geometry.LINEAR_RING)); Assert.assertTrue(lr.isEmpty()); MultiLineString mls = (MultiLineString) converter.toInternal(createDtoEmpty(Geometry.MULTI_LINE_STRING)); Assert.assertTrue(mls.isEmpty()); MultiPoint mp = (MultiPoint) converter.toInternal(createDtoEmpty(Geometry.MULTI_POINT)); Assert.assertTrue(mp.isEmpty()); MultiPolygon mpo = (MultiPolygon) converter.toInternal(createDtoEmpty(Geometry.MULTI_POLYGON)); Assert.assertTrue(mpo.isEmpty()); Point p = (Point) converter.toInternal(createDtoEmpty(Geometry.POINT)); Assert.assertTrue(p.isEmpty()); Polygon po = (Polygon) converter.toInternal(createDtoEmpty(Geometry.POLYGON)); Assert.assertTrue(po.isEmpty()); }
Example #24
Source Project: geomajas-project-server Author: geomajas File: GeometryConverterTest.java License: GNU Affero General Public License v3.0 | 6 votes |
private com.vividsolutions.jts.geom.Geometry createJtsEmpty(Class<?> clazz) { if (Point.class.equals(clazz)) { return factory.createPoint((com.vividsolutions.jts.geom.Coordinate) null); } else if (LineString.class.equals(clazz)) { return factory.createLineString((com.vividsolutions.jts.geom.Coordinate[]) null); } else if (LinearRing.class.equals(clazz)) { return factory.createLinearRing((com.vividsolutions.jts.geom.Coordinate[]) null); } else if (Polygon.class.equals(clazz)) { return factory.createPolygon(null, null); } else if (MultiPoint.class.equals(clazz)) { return factory.createMultiPoint((Point[]) null); } else if (MultiLineString.class.equals(clazz)) { return factory.createMultiLineString((LineString[]) null); } else if (MultiPolygon.class.equals(clazz)) { return factory.createMultiPolygon((Polygon[]) null); } else { return null; } }
Example #25
Source Project: xyz-hub Author: heremaps File: JTSHelper.java License: Apache License 2.0 | 5 votes |
/** * Creates a MultiPolygon. */ public static MultiPolygon toMultiPolygon(MultiPolygonCoordinates coords) { if (coords == null) { return null; } Polygon[] polygons = new Polygon[coords.size()]; for (int i = 0; i < polygons.length; i++) { polygons[i] = toPolygon(coords.get(i)); } return JTSHelper.factory.createMultiPolygon(polygons); }
Example #26
Source Project: xyz-hub Author: heremaps File: JTSHelper.java License: Apache License 2.0 | 5 votes |
/** * Creates a JTS Geometry from the provided GeoJSON geometry. */ @SuppressWarnings("unchecked") public static <X extends Geometry> X toGeometry(com.here.xyz.models.geojson.implementation.Geometry geometry) { if (geometry == null) { return null; } if (geometry instanceof com.here.xyz.models.geojson.implementation.Point) { return (X) toPoint(((com.here.xyz.models.geojson.implementation.Point) geometry).getCoordinates()); } if (geometry instanceof com.here.xyz.models.geojson.implementation.MultiPoint) { return (X) toMultiPoint(((com.here.xyz.models.geojson.implementation.MultiPoint) geometry).getCoordinates()); } if (geometry instanceof com.here.xyz.models.geojson.implementation.LineString) { return (X) toLineString(((com.here.xyz.models.geojson.implementation.LineString) geometry).getCoordinates()); } if (geometry instanceof com.here.xyz.models.geojson.implementation.MultiLineString) { return (X) toMultiLineString(((com.here.xyz.models.geojson.implementation.MultiLineString) geometry).getCoordinates()); } if (geometry instanceof com.here.xyz.models.geojson.implementation.Polygon) { return (X) toPolygon(((com.here.xyz.models.geojson.implementation.Polygon) geometry).getCoordinates()); } if (geometry instanceof com.here.xyz.models.geojson.implementation.MultiPolygon) { return (X) toMultiPolygon(((com.here.xyz.models.geojson.implementation.MultiPolygon) geometry).getCoordinates()); } if (geometry instanceof com.here.xyz.models.geojson.implementation.GeometryCollection) { return (X) toGeometryCollection(((com.here.xyz.models.geojson.implementation.GeometryCollection) geometry)); } return null; }
Example #27
Source Project: xyz-hub Author: heremaps File: JTSHelper.java License: Apache License 2.0 | 5 votes |
/** * Create MultiPolygon coordinates. */ public static MultiPolygonCoordinates createMultiPolygonCoordinates(MultiPolygon geom) { if (geom == null) { return null; } int len = geom.getNumGeometries(); MultiPolygonCoordinates multiPolygonCoordinates = new MultiPolygonCoordinates(len); for (int i = 0; i < len; i++) { multiPolygonCoordinates.add(createPolygonCoordinates((Polygon) geom.getGeometryN(i))); } return multiPolygonCoordinates; }
Example #28
Source Project: xyz-hub Author: heremaps File: JTSHelper.java License: Apache License 2.0 | 5 votes |
@SuppressWarnings("unchecked") public static <X extends com.here.xyz.models.geojson.implementation.Geometry> X fromGeometry(Geometry jtsGeometry) { if (jtsGeometry == null) { return null; } if (jtsGeometry instanceof Point) { return (X) new com.here.xyz.models.geojson.implementation.Point().withCoordinates(createPointCoordinates((Point) jtsGeometry)); } if (jtsGeometry instanceof MultiPoint) { return (X) new com.here.xyz.models.geojson.implementation.MultiPoint() .withCoordinates(createMultiPointCoordinates((MultiPoint) jtsGeometry)); } if (jtsGeometry instanceof LineString) { return (X) new com.here.xyz.models.geojson.implementation.LineString() .withCoordinates(createLineStringCoordinates((LineString) jtsGeometry)); } if (jtsGeometry instanceof MultiLineString) { return (X) new com.here.xyz.models.geojson.implementation.MultiLineString() .withCoordinates(createMultiLineStringCoordinates((MultiLineString) jtsGeometry)); } if (jtsGeometry instanceof Polygon) { return (X) new com.here.xyz.models.geojson.implementation.Polygon().withCoordinates(createPolygonCoordinates((Polygon) jtsGeometry)); } if (jtsGeometry instanceof MultiPolygon) { return (X) new com.here.xyz.models.geojson.implementation.MultiPolygon() .withCoordinates(createMultiPolygonCoordinates((MultiPolygon) jtsGeometry)); } if (jtsGeometry instanceof GeometryCollection) { return (X) fromGeometryCollection((GeometryCollection) jtsGeometry); } return null; }
Example #29
Source Project: sldeditor Author: robward-scisys File: GeometryTypeMapping.java License: GNU General Public License v3.0 | 5 votes |
/** * Populate member data */ private static void populate() { geometryMap.put(Point.class, GeometryTypeEnum.POINT); geometryMap.put(MultiPoint.class, GeometryTypeEnum.POINT); geometryMap.put(LineString.class, GeometryTypeEnum.LINE); geometryMap.put(MultiLineString.class, GeometryTypeEnum.LINE); geometryMap.put(Polygon.class, GeometryTypeEnum.POLYGON); geometryMap.put(MultiPolygon.class, GeometryTypeEnum.POLYGON); }
Example #30
Source Project: dhis2-core Author: dhis2 File: InternalMapObject.java License: BSD 3-Clause "New" or "Revised" License | 5 votes |
public Style getStyle() { Style style; if ( geometry instanceof Point ) { style = SLD.createPointStyle( CIRCLE, strokeColor, fillColor, fillOpacity, radius ); } else if ( geometry instanceof Polygon || geometry instanceof MultiPolygon ) { if ( MapLayerType.BOUNDARY.equals( mapLayerType ) ) { style = SLD.createLineStyle( strokeColor, LINE_STROKE_WIDTH ); } else { style = SLD.createPolygonStyle( strokeColor, fillColor, fillOpacity ); } } else { style = SLD.createSimpleStyle( getFeatureType() ); } return style; }