Refine search
private void writeMultiPoint(MultiPoint mp, Writer writer, int level) throws IOException { startLine(level, writer); startGeomTag(GMLConstants.GML_MULTI_POINT, mp, writer); for (int t = 0; t < mp.getNumGeometries(); t++) { startLine(level + 1, writer); startGeomTag(GMLConstants.GML_POINT_MEMBER, null, writer); writePoint((Point) mp.getGeometryN(t), writer, level + 2); startLine(level + 1, writer); endGeomTag(GMLConstants.GML_POINT_MEMBER, writer); } startLine(level, writer); endGeomTag(GMLConstants.GML_MULTI_POINT, writer); }
/** * Checks validity of a MultiPoint. */ private void checkValid(MultiPoint g) { checkInvalidCoordinates(g.getCoordinates()); }
/** * Gets the boundary of this geometry. * Zero-dimensional geometries have no boundary by definition, * so an empty GeometryCollection is returned. * * @return an empty GeometryCollection * @see Geometry#getBoundary */ public Geometry getBoundary() { return getFactory().createGeometryCollection(null); }
protected Geometry transformMultiPoint(MultiPoint geom, Geometry parent) { List transGeomList = new ArrayList(); for (int i = 0; i < geom.getNumGeometries(); i++) { Geometry transformGeom = transformPoint((Point) geom.getGeometryN(i), geom); if (transformGeom == null) continue; if (transformGeom.isEmpty()) continue; transGeomList.add(transformGeom); } return factory.buildGeometry(transGeomList); }
private boolean isSimpleMultiPoint(MultiPoint mp) { if (mp.isEmpty()) return true; Set points = new TreeSet(); for (int i = 0; i < mp.getNumGeometries(); i++) { Point pt = (Point) mp.getGeometryN(i); Coordinate p = pt.getCoordinate(); if (points.contains(p)) { nonSimpleLocation = p; return false; } points.add(p); } return true; }
public Object parse(Handler arg, GeometryFactory gf) throws SAXException { // one child, either a coord // or a coordinate sequence if(arg.children.size()<1) throw new SAXException("Cannot create a multi-point without atleast one point"); int srid = getSrid(arg.attrs,gf.getSRID()); Point[] pts = (Point[]) arg.children.toArray(new Point[arg.children.size()]); MultiPoint mp = gf.createMultiPoint(pts); if(mp.getSRID()!=srid) mp.setSRID(srid); return mp; } });
Point[] points; if (sourceGeometry.isEmpty()) points = new Point[0]; else if(source instanceof Point) else points=new Point[] {(Point)this.convert(source,Point.class)}; destGeometry = gFac.createMultiPoint(points); if (sourceGeometry.isEmpty()) lineStrings = new LineString[0]; else if(source instanceof LineString) else lineStrings=new LineString[] {(LineString)this.convert(source,LineString.class)}; destGeometry = gFac.createMultiLineString(lineStrings); if (sourceGeometry.isEmpty()) polygons = new Polygon[0]; else if(source instanceof Polygon) destGeometry = gFac.createPoint((Coordinate) null); else if(source instanceof MultiPoint && sourceGeometry.getNumGeometries()==1) destGeometry = (Geometry) ((MultiPoint)source).getGeometryN(0).clone(); else { if(LOGGER.isLoggable(Level.FINE))
Geometry geometry = shape.getGeometry(); if (geometry.intersects(((Grid)extent).getBoundary())) { for (int i = 0; i < geometry.getNumGeometries(); i++) { Polygon poly = (Polygon) geometry.getGeometryN(i); LinearRing lr = geoFactory.createLinearRing(poly.getExteriorRing().getCoordinates()); Polygon part = geoFactory.createPolygon(lr, null); drawGeometry(part, false, swapAxis); for (int j = 0; j < poly.getNumInteriorRing(); j++) { lr = geoFactory.createLinearRing(poly.getInteriorRingN(j).getCoordinates()); part = geoFactory.createPolygon(lr, null); drawGeometry(part, true, swapAxis); for (int n = 0; n < mp.getNumGeometries(); n++) { drawGeometry(mp.getGeometryN(n), false, swapAxis);
GeometryFactory factory = g.getFactory(); } else if (g instanceof MultiPoint) { MultiPoint mp = (MultiPoint) g; Point[] points = new Point[mp.getNumGeometries()]; points[i] = transformPoint((Point) mp.getGeometryN(i), factory); transformed = factory.createMultiPoint(points); } else if (g instanceof LineString) { transformed = transformLineString((LineString) g, factory); transformed = factory.createMultiLineString(lines); } else if (g instanceof Polygon) { transformed = transformPolygon((Polygon) g, factory); transformed = factory.createMultiPolygon(polygons); } else if (g instanceof GeometryCollection) { GeometryCollection gc = (GeometryCollection) g; transformed.setUserData(g.getUserData()); if ((g.getUserData() == null) || g.getUserData() instanceof CoordinateReferenceSystem) {
public void write(ByteBuffer buffer, Object geometry) { MultiPoint mp = (MultiPoint) geometry; Envelope box = mp.getEnvelopeInternal(); buffer.putDouble(box.getMinX()); buffer.putDouble(box.getMinY()); buffer.putDouble(box.getMaxY()); buffer.putInt(mp.getNumGeometries()); for (int t = 0, tt = mp.getNumGeometries(); t < tt; t++) { Coordinate c = (mp.getGeometryN(t)).getCoordinate(); buffer.putDouble(c.x); buffer.putDouble(c.y); double[] zExtreame = JTSUtilities.zMinMax(mp.getCoordinates()); for (int t = 0; t < mp.getNumGeometries(); t++) { Coordinate c = (mp.getGeometryN(t)).getCoordinate(); double z = c.z; buffer.putDouble(-10E40); for (int t = 0; t < mp.getNumGeometries(); t++) { buffer.putDouble(-10E40);
Point[] pointArray = geometryFactory.toPointArray(geometries); MultiPoint multiPoint = geometryFactory.createMultiPoint(pointArray); multiPoint.setUserData( getSRS() ); multiPoint.setSRID( getSRID() ); LOGGER.fine("created " + multiPoint); } else if (internalType.equals("LineString")) { LineString[] lineStringArray = geometryFactory .toLineStringArray(geometries); MultiLineString multiLineString = geometryFactory.createMultiLineString(lineStringArray); multiLineString.setUserData( getSRS() );
return inputGeometry.getCentroid().getCoordinate(); } else if (inputGeometry instanceof LineString) { return inputGeometry.getCentroid().getCoordinate(); } else if (inputGeometry instanceof Polygon) { return inputGeometry.getCentroid().getCoordinate(); } else if (inputGeometry instanceof MultiPoint) { MultiPoint mp = (MultiPoint) inputGeometry; for (int k = 0; k < mp.getNumGeometries(); k++) { Coordinate cen = mp.getGeometryN(k).getCoordinate();
@ProcessMethod @OutputParameter(id = "setRandomHeightForMultiPoint", title = "Set a random height for given MultiPoint", description = "Sets a random height for all points inside this MultiPoint", dataType = @DataType(schemaDesignator = "http://schemas.opengis.net/gml/3.1.1/base/gml.xsd#MultiPoint")) public MultiPoint setRandomHeightForMultiPoint( @InputParameter(id = "multipoint", title = "2D Points", description = "A selection of points where you want to define the height") MultiPoint multipoint) { List<Point> transformedPoints = new ArrayList<Point>(); for (Coordinate coordinate : multipoint.getCoordinates()) { coordinate = new Coordinate(coordinate.x, coordinate.y, Math.random()); transformedPoints.add(multipoint.getFactory().createPoint(coordinate)); } MultiPoint transformedMultiPoint = new MultiPoint( transformedPoints.toArray(new Point[transformedPoints.size()]), multipoint.getFactory()); return transformedMultiPoint; } }
@Override public Iterator<Point> call(Geometry spatialObject) throws Exception { List<Point> result = new ArrayList<Point>(); if (spatialObject instanceof MultiPoint) { MultiPoint multiObjects = (MultiPoint) spatialObject; for (int i = 0; i < multiObjects.getNumGeometries(); i++) { Point oneObject = (Point) multiObjects.getGeometryN(i); oneObject.setUserData(multiObjects.getUserData()); result.add(oneObject); } } else if (spatialObject instanceof Point) { result.add((Point) spatialObject); } else { throw new Exception("[ShapefileRDD][getPointRDD] the object type is not Point or MultiPoint type. It is " + spatialObject.getGeometryType()); } return result.iterator(); } })
@Override public Geometry moveTo(double x, double y) throws CannotChangeGeometryException { Coordinate p = new Coordinate(x, y); MultiPoint mp = (MultiPoint) geometry.clone(); Point[] points = new Point[mp.getNumGeometries()]; for (int i = 0; i < points.length; i++) { if (i == pointIndex) { PointHandler handler = new PointHandler(mp.getGeometryN(i), 0, p, geomIndex); points[i] = (Point) handler.moveJTSTo(x, y); } else { points[i] = (Point) mp.getGeometryN(i); } } mp = gf.createMultiPoint(points); if (!mp.isValid()) { throw new CannotChangeGeometryException(I18N.tr("Invalid MultiPoint")); } return mp; }
/** * Returns the MultiPoint with vertex order reversed. We do our own * implementation here because JTS does not handle it. * * @param mp MultiPoint * @return MultiPoint with vertex order reversed */ public static Geometry reverseMultiPoint(MultiPoint mp) { int nPoints = mp.getNumGeometries(); Point[] revPoints = new Point[nPoints]; for (int i = 0; i < nPoints; i++) { revPoints[nPoints - 1 - i] = (Point) mp.getGeometryN(i).reverse(); } return mp.getFactory().createMultiPoint(revPoints); } }
protected static Geometry transformMultiPoint(CoordinateTransform ct, MultiPoint multiPoint) { return multiPoint.getFactory().createMultiPoint(transformCoordinates(ct, multiPoint.getCoordinates())); }
private SDOGeometry convertJTSMultiPoint(MultiPoint multiPoint) { int dim = getCoordDimension(multiPoint); int lrsDim = getCoordinateLrsPosition(multiPoint); boolean isLrs = (lrsDim != 0); SDOGeometry geom = new SDOGeometry(); geom.setGType(new SDOGType(dim, lrsDim, TypeGeometry.MULTIPOINT)); geom.setSRID(multiPoint.getSRID()); ElemInfo info = new ElemInfo(multiPoint.getNumPoints()); int oordinatesOffset = 1; Double[] ordinates = new Double[]{}; for (int i = 0; i < multiPoint.getNumPoints(); i++) { info.setElement(i, oordinatesOffset, ElementType.POINT, 0); ordinates = convertAddCoordinates(ordinates, multiPoint .getGeometryN(i).getCoordinates(), dim, isLrs); oordinatesOffset = ordinates.length + 1; } geom.setInfo(info); geom.setOrdinates(new Ordinates(ordinates)); return geom; }
@Override protected Double getSortAttributeValue(SimpleFeature f) { Geometry g = (Geometry) f.getAttribute(attribute); if (g instanceof MultiPoint) return (double) ((MultiPoint) g).getNumGeometries(); if (g instanceof Polygon || g instanceof MultiPolygon) return g.getArea(); else return g.getLength(); }
if ( jtsGeom.isEmpty() ) { return null; } else if ( jtsGeom instanceof com.vividsolutions.jts.geom.MultiPoint ) { com.vividsolutions.jts.geom.MultiPoint jtsMultiPoint = (com.vividsolutions.jts.geom.MultiPoint) jtsGeom; if ( jtsMultiPoint.getNumGeometries() > 0 ) { List<Point> members = new ArrayList<Point>( jtsMultiPoint.getNumGeometries() ); for ( int i = 0; i < jtsMultiPoint.getNumGeometries(); i++ ) { members.add( (Point) createFromJTS( jtsMultiPoint.getGeometryN( i ), crs ) );