/** * Convenient method to convert a POLYGON VectorFeature to a * MULTIPOLYGON feature. This method can be used of you are trying to save a * VectorFeature Polygon using WFS-T to geoserver and you are seeing a "Error * performing insert: java.lang.String cannot be cast to * com.vividsolutions.jts.geom.Geometry". * * @return true if converting succeeded (if this is not a POLYGON) */ public boolean convertPolygonToMultiPolygon() { final Geometry g = this.getGeometry(); if (g.getClassName().equals( org.gwtopenmaps.openlayers.client.geometry.Geometry.POLYGON_CLASS_NAME)) { final Polygon p = Polygon.narrowToPolygon(g.getJSObject()); final MultiPolygon mp = new MultiPolygon(new Polygon[]{p}); this.getJSObject().setProperty("geometry", mp.getJSObject()); return true; } else { return false; } }
/** * Convenient method to convert a LINESTRING VectorFeature to a * MULTILINE featureE. This method can be used of you are trying to save a * VectorFeature Line using WFS-T to geoserver and you are seeing a "Error * performing insert: java.lang.String cannot be cast to * com.vividsolutions.jts.geom.Geometry". * * @return true if converting succeeded (if this is not a LINESTRING) */ public boolean convertLineStringToMultiLineString() { final Geometry g = this.getGeometry(); if (g.getClassName().equals( org.gwtopenmaps.openlayers.client.geometry.Geometry.LINESTRING_CLASS_NAME)) { final LineString ls = LineString.narrowToLineString(g.getJSObject()); final MultiLineString mls = new MultiLineString(new LineString[]{ls}); this.getJSObject().setProperty("geometry", mls.getJSObject()); return true; } else { return false; } }