@Override public OGCGeometry boundary() { if (isEmpty()) return new OGCMultiPoint(this.getEsriSpatialReference()); if (isClosed()) return new OGCMultiPoint(new MultiPoint(getEsriGeometry() .getDescription()), esriSR);// return empty multipoint; else return new OGCMultiPoint(startPoint(), endPoint()); } }
@Override protected Object evaluateOGCGeometry(OGCGeometry geometry) throws HyracksDataException { if (geometry instanceof OGCCurve) { return ((OGCCurve) geometry).startPoint(); } else { throw new UnsupportedOperationException( "The operation " + getIdentifier() + " is not supported for the type " + geometry.geometryType()); } }
@Override protected Object evaluateOGCGeometry(OGCGeometry geometry) throws HyracksDataException { if (geometry instanceof OGCCurve) { return ((OGCCurve) geometry).endPoint(); } else { throw new UnsupportedOperationException( "The operation " + getIdentifier() + " is not supported for the type " + geometry.geometryType()); } }
private boolean isClosed(OGCGeometry geometry) { if (geometry instanceof OGCCurve) { return ((OGCCurve) geometry).isClosed(); } else if (geometry instanceof OGCMultiCurve) { return ((OGCMultiCurve) geometry).isClosed(); } else if (geometry instanceof OGCMultiPoint || geometry instanceof OGCMultiPolygon || geometry instanceof OGCPolygon || geometry instanceof OGCPoint) { return true; } else if (geometry instanceof OGCGeometryCollection) { OGCGeometryCollection geometryCollection = (OGCGeometryCollection) geometry; int num = geometryCollection.numGeometries(); for (int i = 0; i < num; ++i) { if (!isClosed(geometryCollection.geometryN(i))) { return false; } } return true; } else { throw new UnsupportedOperationException( "The operation " + getIdentifier() + " is not supported for the type " + geometry.geometryType()); } }
@Override protected Object evaluateOGCGeometry(OGCGeometry geometry) throws HyracksDataException { if (geometry instanceof OGCCurve) { return ((OGCCurve) geometry).isRing(); } else { throw new UnsupportedOperationException( "The operation " + getIdentifier() + " is not supported for the type " + geometry.geometryType()); } }
@Override public OGCGeometry boundary() { if (isEmpty()) return new OGCMultiPoint(this.getEsriSpatialReference()); if (isClosed()) return new OGCMultiPoint(new MultiPoint(getEsriGeometry() .getDescription()), esriSR);// return empty multipoint; else return new OGCMultiPoint(startPoint(), endPoint()); } }