private static void accelerateGeometry(OGCGeometry ogcGeometry, Operator relateOperator) { // Recurse into GeometryCollections GeometryCursor cursor = ogcGeometry.getEsriGeometryCursor(); while (true) { com.esri.core.geometry.Geometry esriGeometry = cursor.next(); if (esriGeometry == null) { break; } relateOperator.accelerateGeometry(esriGeometry, null, Geometry.GeometryAccelerationDegree.enumMild); } }
@Override public Geometry next() { Geometry geometry; if ((geometry = m_inputGeometryCursor.next()) != null) { m_index = m_inputGeometryCursor.getGeometryID(); return Clipper.clip(geometry, m_envelope, m_tolerance, 0.0); } return null; }
@Override public int getGeometryID() { // TODO Auto-generated method stub return m_geoms.getGeometryID(); }
@Override public Geometry next() { if (!m_b_done) { Geometry geometry = m_inputGeometryCursor.next(); if (geometry != null) { m_index = m_inputGeometryCursor.getGeometryID(); return calculate_boundary(geometry, m_progress_tracker); } m_b_done = true; } return null; }
@Override public int getGeometryID() { return m_cur.getGeometryID(); } }
public static boolean disjoint(Envelope envelope, OGCGeometry ogcGeometry) { GeometryCursor cursor = ogcGeometry.getEsriGeometryCursor(); while (true) { Geometry geometry = cursor.next(); if (geometry == null) { return true; } if (!GeometryEngine.disjoint(geometry, envelope, null)) { return false; } } }
public Geometry next() { Geometry geom = m_inputGeoms.next(); if (geom != null) { m_index = m_inputGeoms.getGeometryID(); return Offset(geom); } return null; }
@Override public int getGeometryID() { return m_cur.getGeometryID(); } }
public static boolean contains(OGCGeometry ogcGeometry, Envelope envelope) { GeometryCursor cursor = ogcGeometry.getEsriGeometryCursor(); while (true) { Geometry geometry = cursor.next(); if (geometry == null) { return false; } if (GeometryEngine.contains(geometry, envelope, null)) { return true; } } }
@Override public Geometry next() { if (!m_b_done) { Geometry geometry = m_inputGeometryCursor.next(); if (geometry != null) { m_index = m_inputGeometryCursor.getGeometryID(); return calculate_boundary(geometry, m_progress_tracker); } m_b_done = true; } return null; }
@Override public int getGeometryID() { // TODO Auto-generated method stub return m_geoms.getGeometryID(); }
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(); } } }
@Override public Geometry next() { if (m_bEmpty) return null; Geometry geom; if ((geom = m_inputGeoms.next()) != null) { m_index = m_inputGeoms.getGeometryID(); return OperatorDifferenceLocal.difference(geom, m_geomSubtractor, m_Spatial_reference, m_progress_tracker); } return null; }
public static Envelope getEnvelope(OGCGeometry ogcGeometry) { GeometryCursor cursor = ogcGeometry.getEsriGeometryCursor(); Envelope overallEnvelope = new Envelope(); while (true) { Geometry geometry = cursor.next(); if (geometry == null) { return overallEnvelope; } Envelope envelope = new Envelope(); geometry.queryEnvelope(envelope); overallEnvelope.merge(envelope); } }
@Override public Geometry next() { Geometry geometry; if ((geometry = m_inputGeometryCursor.next()) != null) { m_index = m_inputGeometryCursor.getGeometryID(); return Clipper.clip(geometry, m_envelope, m_tolerance, 0.0); } return null; }
@Description("Returns true if the input geometry is well formed") @ScalarFunction("ST_IsValid") @SqlType(BOOLEAN) public static boolean stIsValid(@SqlType(GEOMETRY_TYPE_NAME) Slice input) { GeometryCursor cursor = deserialize(input).getEsriGeometryCursor(); while (true) { com.esri.core.geometry.Geometry geometry = cursor.next(); if (geometry == null) { return true; } if (!OperatorSimplifyOGC.local().isSimpleOGC(geometry, null, true, null, null)) { return false; } } }
@Override public String next() { Geometry geometry; if ((geometry = m_inputGeometryCursor.next()) != null) { m_index = m_inputGeometryCursor.getGeometryID(); return exportToString(geometry, m_spatialReference, null); } return null; }
@Description("Returns the 2D Euclidean area of a geometry") @ScalarFunction("ST_Area") @SqlType(DOUBLE) public static double stArea(@SqlType(GEOMETRY_TYPE_NAME) Slice input) { OGCGeometry geometry = deserialize(input); // The Esri geometry library does not support area for geometry collections. We compute the area // of collections by summing the area of the individual components. GeometryType type = GeometryType.getForEsriGeometryType(geometry.geometryType()); if (type == GeometryType.GEOMETRY_COLLECTION) { double area = 0.0; GeometryCursor cursor = geometry.getEsriGeometryCursor(); while (true) { com.esri.core.geometry.Geometry esriGeometry = cursor.next(); if (esriGeometry == null) { return area; } area += esriGeometry.calculateArea2D(); } } return geometry.getEsriGeometry().calculateArea2D(); }
@Override public Geometry next() { Geometry geom; if ((geom = m_inputGeoms.next()) != null) { m_index = m_inputGeoms.getGeometryID(); return densifyByLength(geom); } return null; }