public static int getPointCount(OGCGeometry ogcGeometry) { GeometryCursor cursor = ogcGeometry.getEsriGeometryCursor(); int points = 0; while (true) { com.esri.core.geometry.Geometry geometry = cursor.next(); if (geometry == null) { return points; } if (geometry.isEmpty()) { continue; } if (geometry instanceof Point) { points++; } else { points += ((MultiVertexGeometry) geometry).getPointCount(); } } }
if (geometry.isEmpty()) { return new OGCPoint(new Point(), null);
public boolean isEmpty() { return getEsriGeometry().isEmpty(); }
public boolean isEmpty() { return getEsriGeometry().isEmpty(); }
private GeometryCursor removeOverlapsHelper_(List<Geometry> geoms) { List<Geometry> result = new ArrayList<Geometry>(); for (int i = 0; i < geoms.size(); ++i) { Geometry current = geoms.get(i); if (current.isEmpty()) continue; for (int j = i + 1; j < geoms.size(); ++j) { Geometry subG = geoms.get(j); current = OperatorDifference.local().execute(current, subG, esriSR, null); if (current.isEmpty()) break; } if (current.isEmpty()) continue; result.add(current); } return new SimpleGeometryCursor(result); }
static boolean canUseRasterizedGeometry(Geometry geom) { if (geom.isEmpty() || !(geom.getType() == Geometry.Type.Polyline || geom.getType() == Geometry.Type.Polygon)) { return false; } return true; }
/** * Checks whether the RasterizedGeometry2D accelerator can be used with the * given geometry. */ static boolean canUseAccelerator(Geometry geom) { if (geom.isEmpty() || !(geom.getType() == Geometry.Type.Polyline || geom.getType() == Geometry.Type.Polygon)) return false; return true; }
/** * Checks whether the RasterizedGeometry2D accelerator can be used with the * given geometry. */ static boolean canUseAccelerator(Geometry geom) { if (geom.isEmpty() || !(geom.getType() == Geometry.Type.Polyline || geom.getType() == Geometry.Type.Polygon)) return false; return true; }
static boolean canUseRasterizedGeometry(Geometry geom) { if (geom.isEmpty() || !(geom.getType() == Geometry.Type.Polyline || geom.getType() == Geometry.Type.Polygon)) { return false; } return true; }
public static OGCGeometry createFromEsriCursor(GeometryCursor gc, SpatialReference sr, boolean skipEmpty) { ArrayList<OGCGeometry> geoms = new ArrayList<OGCGeometry>(10); Geometry emptyGeom = null; for (Geometry g = gc.next(); g != null; g = gc.next()) { emptyGeom = g; if (!skipEmpty || !g.isEmpty()) geoms.add(createFromEsriGeometry(g, sr)); } if (geoms.size() == 1) { return geoms.get(0); } else if (geoms.size() == 0) return createFromEsriGeometry(emptyGeom, sr); else return new OGCConcreteGeometryCollection(geoms, sr); }
public static OGCGeometry createFromEsriCursor(GeometryCursor gc, SpatialReference sr, boolean skipEmpty) { ArrayList<OGCGeometry> geoms = new ArrayList<OGCGeometry>(10); Geometry emptyGeom = null; for (Geometry g = gc.next(); g != null; g = gc.next()) { emptyGeom = g; if (!skipEmpty || !g.isEmpty()) geoms.add(createFromEsriGeometry(g, sr)); } if (geoms.size() == 1) { return geoms.get(0); } else if (geoms.size() == 0) return createFromEsriGeometry(emptyGeom, sr); else return new OGCConcreteGeometryCollection(geoms, sr); }
static boolean canUseQuadTree(Geometry geom) { if (geom.isEmpty() || !(geom.getType() == Geometry.Type.Polyline || geom.getType() == Geometry.Type.Polygon)) { return false; } if (((MultiVertexGeometry) geom).getPointCount() < 20) { return false; } return true; }
static boolean canUseQuadTreeForPaths(Geometry geom) { if (geom.isEmpty() || !(geom.getType() == Geometry.Type.Polyline || geom.getType() == Geometry.Type.Polygon)) return false; if (((MultiVertexGeometry) geom).getPointCount() < 20) return false; return true; }
static boolean canUseQuadTree(Geometry geom) { if (geom.isEmpty() || !(geom.getType() == Geometry.Type.Polyline || geom.getType() == Geometry.Type.Polygon)) { return false; } if (((MultiVertexGeometry) geom).getPointCount() < 20) { return false; } return true; }
static boolean canUseQuadTreeForPaths(Geometry geom) { if (geom.isEmpty() || !(geom.getType() == Geometry.Type.Polyline || geom.getType() == Geometry.Type.Polygon)) return false; if (((MultiVertexGeometry) geom).getPointCount() < 20) return false; return true; }
/** * Adds a geometry to the current bounding geometry using an incremental algorithm for dynamic insertion. * @param geometry The geometry to add to the bounding geometry. */ void addGeometry(Geometry geometry) { if (geometry.isEmpty()) return; int type = geometry.getType().value(); if (MultiVertexGeometry.isMultiVertex(type)) addMultiVertexGeometry_((MultiVertexGeometry) geometry); else if (MultiPath.isSegment(type)) addSegment_((Segment) geometry); else if (type == Geometry.GeometryType.Envelope) addEnvelope_((Envelope) geometry); else if (type == Geometry.GeometryType.Point) addPoint_((Point) geometry); else throw new IllegalArgumentException("invalid shape type"); }
Geometry normalizeIntersectionOutput(Geometry geom, int GT_1, int GT_2) { if (GT_1 == Geometry.GeometryType.Point || GT_2 == Geometry.GeometryType.Point) { assert (geom.getType().value() == Geometry.GeometryType.Point); } if (GT_1 == Geometry.GeometryType.MultiPoint) { if (geom.getType().value() == Geometry.GeometryType.Point) { MultiPoint mp = new MultiPoint(geom.getDescription()); if (!geom.isEmpty()) mp.add((Point) geom); return mp; } } return geom; }
Geometry normalizeIntersectionOutput(Geometry geom, int GT_1, int GT_2) { if (GT_1 == Geometry.GeometryType.Point || GT_2 == Geometry.GeometryType.Point) { assert (geom.getType().value() == Geometry.GeometryType.Point); } if (GT_1 == Geometry.GeometryType.MultiPoint) { if (geom.getType().value() == Geometry.GeometryType.Point) { MultiPoint mp = new MultiPoint(geom.getDescription()); if (!geom.isEmpty()) mp.add((Point) geom); return mp; } } return geom; }