public static Geometry read( byte[] wkb, ICRS crs ) throws ParseException { // com.vividsolutions.jts.io.WKBReader() is not thread safe return defaultGeom.createFromJTS( new com.vividsolutions.jts.io.WKBReader().read( wkb ), crs ); }
@Override public Geometry getConvexHull() { com.vividsolutions.jts.geom.Geometry jtsGeom = getJTSGeometry().convexHull(); return createFromJTS( jtsGeom, crs ); }
/** * Creates a deep copy of the given {@link Geometry} object. * * @param geom * @return */ public static Geometry copyDeep( Geometry geom ) { // TODO implement this without JTS com.vividsolutions.jts.geom.Geometry jtsGeom = ( (AbstractDefaultGeometry) geom ).getJTSGeometry(); return ( (AbstractDefaultGeometry) geom ).createFromJTS( jtsGeom, geom.getCoordinateSystem() ); }
@Override public Geometry getUnion( Geometry geometry ) { JTSGeometryPair jtsGeoms = JTSGeometryPair.createCompatiblePair( this, geometry ); com.vividsolutions.jts.geom.Geometry jtsGeom = jtsGeoms.first.union( jtsGeoms.second ); return createFromJTS( jtsGeom, crs ); }
@Override public Geometry getDifference( Geometry geometry ) { JTSGeometryPair jtsGeoms = JTSGeometryPair.createCompatiblePair( this, geometry ); com.vividsolutions.jts.geom.Geometry jtsGeom = jtsGeoms.first.difference( jtsGeoms.second ); return createFromJTS( jtsGeom, crs ); }
@Override public Point getCentroid() { return (Point) createFromJTS( getJTSGeometry().getCentroid(), crs ); }
public static Geometry read( InputStream is, ICRS crs ) throws IOException, ParseException { // com.vividsolutions.jts.io.WKBReader() is not thread safe return defaultGeom.createFromJTS( new com.vividsolutions.jts.io.WKBReader().read( new InputStreamInStream( is ) ), crs ); } }
@Override public Geometry getBuffer( Measure distance ) { // TODO get double in CoordinateSystem units double crsDistance = distance.getValueAsDouble(); com.vividsolutions.jts.geom.Geometry jtsGeom = getJTSGeometry().buffer( crsDistance ); return createFromJTS( jtsGeom, crs ); }
@Override public Geometry getIntersection( Geometry geometry ) { JTSGeometryPair jtsGeoms = JTSGeometryPair.createCompatiblePair( this, geometry ); ICRS crs = this.crs; if ( crs == null ) { crs = geometry.getCoordinateSystem(); } com.vividsolutions.jts.geom.Geometry jtsGeom = jtsGeoms.first.intersection( jtsGeoms.second ); return createFromJTS( jtsGeom, crs ); }
List<Point> members = new ArrayList<Point>( jtsMultiPoint.getNumGeometries() ); for ( int i = 0; i < jtsMultiPoint.getNumGeometries(); i++ ) { members.add( (Point) createFromJTS( jtsMultiPoint.getGeometryN( i ), crs ) ); List<LineString> members = new ArrayList<LineString>( jtsMultiLineString.getNumGeometries() ); for ( int i = 0; i < jtsMultiLineString.getNumGeometries(); i++ ) { Curve curve = (Curve) createFromJTS( jtsMultiLineString.getGeometryN( i ), crs ); members.add( curve.getAsLineString() ); List<Polygon> members = new ArrayList<Polygon>( jtsMultiPolygon.getNumGeometries() ); for ( int i = 0; i < jtsMultiPolygon.getNumGeometries(); i++ ) { members.add( (Polygon) createFromJTS( jtsMultiPolygon.getGeometryN( i ), crs ) ); List<Geometry> members = new ArrayList<Geometry>( jtsGeometryCollection.getNumGeometries() ); for ( int i = 0; i < jtsGeometryCollection.getNumGeometries(); i++ ) { members.add( createFromJTS( jtsGeometryCollection.getGeometryN( i ), crs ) );