├── .gitignore
├── LICENSE
├── README.md
├── geoapi-conformance
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ ├── module-info.java
│ │ └── org
│ │ │ └── opengis
│ │ │ └── test
│ │ │ ├── Assertions.java
│ │ │ ├── CalculationType.java
│ │ │ ├── ComputationFailure.java
│ │ │ ├── Configuration.java
│ │ │ ├── TestCase.java
│ │ │ ├── ToleranceModifier.java
│ │ │ ├── ToleranceModifiers.java
│ │ │ ├── Units.java
│ │ │ ├── Validator.java
│ │ │ ├── ValidatorContainer.java
│ │ │ ├── Validators.java
│ │ │ ├── WarningMessage.java
│ │ │ ├── coverage
│ │ │ └── image
│ │ │ │ ├── ImageBackendTestCase.java
│ │ │ │ ├── ImageIOTestCase.java
│ │ │ │ ├── ImageReaderTestCase.java
│ │ │ │ ├── ImageValidator.java
│ │ │ │ ├── ImageWriterTestCase.java
│ │ │ │ ├── PixelIterator.java
│ │ │ │ ├── PixelIteratorForIO.java
│ │ │ │ ├── RasterImage.java
│ │ │ │ └── package-info.java
│ │ │ ├── dataset
│ │ │ ├── ContentVerifier.java
│ │ │ ├── TestData.java
│ │ │ └── package-info.java
│ │ │ ├── geometry
│ │ │ ├── GeometryValidator.java
│ │ │ └── package-info.java
│ │ │ ├── metadata
│ │ │ ├── CitationValidator.java
│ │ │ ├── ExtentValidator.java
│ │ │ ├── MaintenanceValidator.java
│ │ │ ├── MetadataBaseValidator.java
│ │ │ ├── MetadataValidator.java
│ │ │ ├── QualityValidator.java
│ │ │ └── package-info.java
│ │ │ ├── package-info.java
│ │ │ ├── referencing
│ │ │ ├── AffineTransformTest.java
│ │ │ ├── AuthorityFactoryTest.java
│ │ │ ├── CRSValidator.java
│ │ │ ├── CSValidator.java
│ │ │ ├── DatumValidator.java
│ │ │ ├── DerivativeFailure.java
│ │ │ ├── EPSGIdentifier.java
│ │ │ ├── ObjectFactoryTest.java
│ │ │ ├── OperationValidator.java
│ │ │ ├── ParameterValidator.java
│ │ │ ├── ParameterizedTransformTest.java
│ │ │ ├── PseudoEpsgFactory.java
│ │ │ ├── ReferencingTestCase.java
│ │ │ ├── ReferencingValidator.java
│ │ │ ├── RegisterOperationsMock.java
│ │ │ ├── SamplePoints.java
│ │ │ ├── SimpleDirectPosition.java
│ │ │ ├── SimpleMatrix.java
│ │ │ ├── TransformFailure.java
│ │ │ ├── TransformTestCase.java
│ │ │ ├── Utilities.java
│ │ │ ├── WKTParserTest.java
│ │ │ └── package-info.java
│ │ │ ├── report
│ │ │ ├── AuthorityCodesReport.java
│ │ │ ├── IdentifiedObjects.java
│ │ │ ├── OperationParametersReport.java
│ │ │ ├── Report.java
│ │ │ └── package-info.java
│ │ │ └── util
│ │ │ ├── CodeListValidator.java
│ │ │ ├── NameTest.java
│ │ │ ├── NameValidator.java
│ │ │ ├── PseudoFactory.java
│ │ │ ├── SimpleCitation.java
│ │ │ ├── SimpleInternationalString.java
│ │ │ └── package-info.java
│ └── resources
│ │ └── org
│ │ └── opengis
│ │ └── test
│ │ ├── dataset
│ │ ├── Cube2D_geographic_packed.nc
│ │ ├── Cube4D_projected_float.nc
│ │ ├── MovingFeatures.nc
│ │ └── README.md
│ │ ├── report
│ │ ├── AuthorityCodes.html
│ │ ├── OperationParameters.html
│ │ ├── geoapi-reports.css
│ │ └── index.html
│ │ └── runner
│ │ ├── documentinfo.png
│ │ ├── mydocuments.png
│ │ └── start.png
│ └── test
│ ├── java
│ └── org
│ │ └── opengis
│ │ └── test
│ │ ├── AssertionsTest.java
│ │ ├── ConfigurationTest.java
│ │ ├── ToleranceModifiersTest.java
│ │ ├── UnitsTest.java
│ │ ├── ValidatorContainerTest.java
│ │ ├── ValidatorTest.java
│ │ ├── coverage
│ │ └── image
│ │ │ ├── ImageBackendCaseTest.java
│ │ │ ├── ImageReaderCaseTest.java
│ │ │ └── ImageWriterCaseTest.java
│ │ ├── dataset
│ │ └── TestDataTest.java
│ │ ├── metadata
│ │ ├── CitationValidatorTest.java
│ │ └── SimpleCitationDate.java
│ │ ├── referencing
│ │ ├── AffineTransform2D.java
│ │ ├── BogusAffineTransform2D.java
│ │ ├── TransformCaseTest.java
│ │ └── ValidatorTest.java
│ │ ├── report
│ │ └── IdentifiedObjectsTest.java
│ │ └── util
│ │ └── ValidatorTest.java
│ └── resources
│ └── org
│ └── opengis
│ └── test
│ └── coverage
│ └── image
│ ├── PointLoma.png
│ └── README.md
├── geoapi-examples
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ ├── module-info.java
│ │ └── org
│ │ │ └── opengis
│ │ │ └── example
│ │ │ ├── SimpleFactories.java
│ │ │ ├── coverage
│ │ │ ├── SimpleGridCoordinates.java
│ │ │ ├── SimpleGridEnvelope.java
│ │ │ └── package-info.java
│ │ │ ├── geometry
│ │ │ ├── SimpleDirectPosition.java
│ │ │ ├── SimpleEnvelope.java
│ │ │ └── package-info.java
│ │ │ ├── metadata
│ │ │ ├── MetadataHandler.java
│ │ │ ├── MetadataProxyFactory.java
│ │ │ ├── SimpleCitation.java
│ │ │ ├── SimpleGeographicBoundingBox.java
│ │ │ ├── SimpleIdentifier.java
│ │ │ └── package-info.java
│ │ │ ├── package-info.java
│ │ │ ├── parameter
│ │ │ ├── SimpleParameter.java
│ │ │ ├── SimpleParameterGroup.java
│ │ │ └── package-info.java
│ │ │ ├── referencing
│ │ │ ├── AffineTransform2D.java
│ │ │ ├── ProjectiveTransform.java
│ │ │ ├── SimpleAuthorityFactory.java
│ │ │ ├── SimpleAxis.java
│ │ │ ├── SimpleCRS.java
│ │ │ ├── SimpleDatum.java
│ │ │ ├── SimpleIdentifiedObject.java
│ │ │ ├── SimpleMatrix.java
│ │ │ ├── SimpleTransform.java
│ │ │ ├── SimpleTransform2D.java
│ │ │ ├── SimpleTransformFactory.java
│ │ │ ├── TransformedCoordinateSet.java
│ │ │ └── package-info.java
│ │ │ └── util
│ │ │ ├── SimpleName.java
│ │ │ ├── SimpleNameFactory.java
│ │ │ ├── SimpleNameSpace.java
│ │ │ └── package-info.java
│ └── javadoc
│ │ └── overview.html
│ └── test
│ └── java
│ └── org
│ └── opengis
│ └── example
│ ├── geometry
│ ├── SimpleDirectPositionTest.java
│ └── SimpleEnvelopeTest.java
│ ├── metadata
│ └── MetadataProxyFactoryTest.java
│ ├── parameter
│ ├── SimpleParameterGroupTest.java
│ └── SimpleParameterTest.java
│ ├── referencing
│ ├── AffineTransform2DTest.java
│ ├── ProjectiveTransformTest.java
│ ├── SimpleAuthorityFactoryTest.java
│ ├── SimpleTest.java
│ └── SimpleTransform2DTest.java
│ └── util
│ └── SimpleNameTest.java
├── geoapi-java-python
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ └── org
│ │ │ └── opengis
│ │ │ └── bridge
│ │ │ └── python
│ │ │ ├── CharSequences.java
│ │ │ ├── Converter.java
│ │ │ ├── Environment.java
│ │ │ ├── EnvironmentException.java
│ │ │ ├── Interfacing.java
│ │ │ ├── Literal.java
│ │ │ ├── PythonHelper.java
│ │ │ ├── Sequence.java
│ │ │ ├── Singleton.java
│ │ │ ├── UnconvertibleTypeException.java
│ │ │ └── package-info.java
│ ├── java9
│ │ └── module-info.txt
│ ├── python
│ │ └── opengis
│ │ │ └── bridge
│ │ │ ├── __init__.py
│ │ │ └── java
│ │ │ ├── __init__.py
│ │ │ ├── metadata.py
│ │ │ └── referencing.py
│ └── resources
│ │ └── org
│ │ └── opengis
│ │ └── bridge
│ │ └── python
│ │ └── subclassed.txt
│ └── test
│ ├── java
│ └── org
│ │ └── opengis
│ │ └── bridge
│ │ └── python
│ │ └── InterfacingTest.java
│ └── python
│ └── test_referencing.py
├── geoapi-pending
├── pom.xml
└── src
│ └── main
│ └── java
│ ├── module-info.java
│ └── org
│ └── opengis
│ ├── annotation
│ ├── XmlElement.java
│ └── XmlParameter.java
│ ├── coverage
│ ├── AttributeValues.java
│ ├── CannotEvaluateException.java
│ ├── CommonPointRule.java
│ ├── ContinuousCoverage.java
│ ├── Coverage.java
│ ├── CurveValuePair.java
│ ├── DiscreteCoverage.java
│ ├── DiscreteCurveCoverage.java
│ ├── DiscreteGridPointCoverage.java
│ ├── DiscretePointCoverage.java
│ ├── DiscreteSolidCoverage.java
│ ├── DiscreteSurfaceCoverage.java
│ ├── DomainObject.java
│ ├── GeometryValuePair.java
│ ├── InterpolationMethod.java
│ ├── PointOutsideCoverageException.java
│ ├── PointValuePair.java
│ ├── SegmentedCurveCoverage.java
│ ├── SolidValuePair.java
│ ├── SurfaceValuePair.java
│ ├── ThiessenPolygonCoverage.java
│ ├── ThiessenValuePolygon.java
│ ├── TinCoverage.java
│ ├── ValueCurve.java
│ ├── ValueObject.java
│ ├── ValueSegment.java
│ ├── ValueTriangle.java
│ ├── grid
│ │ ├── ContinuousQuadrilateralGridCoverage.java
│ │ ├── FootPrint.java
│ │ ├── Grid.java
│ │ ├── GridCell.java
│ │ ├── GridCoordinates.java
│ │ ├── GridEnvelope.java
│ │ ├── GridPoint.java
│ │ ├── GridPointValuePair.java
│ │ ├── GridValueCell.java
│ │ ├── GridValuesMatrix.java
│ │ ├── HexagonalGridCoverage.java
│ │ ├── RectifiedGrid.java
│ │ ├── ReferenceableGrid.java
│ │ ├── SequenceRule.java
│ │ ├── SequenceType.java
│ │ ├── ValueHexagon.java
│ │ ├── doc-files
│ │ │ ├── BoustrophedonicScanning.png
│ │ │ ├── CantorDiagonalScanning.png
│ │ │ ├── Hilbert.png
│ │ │ ├── LinearScanning.png
│ │ │ ├── Morton.png
│ │ │ └── SpiralScanning.png
│ │ └── package-info.java
│ └── package-info.java
│ ├── filter
│ ├── AdhocQueryExpression.java
│ └── capability
│ │ └── GeometryOperand.java
│ ├── geometry
│ ├── Boundary.java
│ ├── Geometry.java
│ ├── PositionFactory.java
│ ├── TransfiniteSet.java
│ ├── aggregate
│ │ ├── Aggregate.java
│ │ ├── AggregateFactory.java
│ │ ├── MultiCurve.java
│ │ ├── MultiPoint.java
│ │ ├── MultiPrimitive.java
│ │ ├── MultiSurface.java
│ │ └── package.html
│ ├── complex
│ │ ├── Complex.java
│ │ ├── ComplexBoundary.java
│ │ ├── ComplexFactory.java
│ │ ├── Composite.java
│ │ ├── CompositeCurve.java
│ │ ├── CompositePoint.java
│ │ ├── CompositeSolid.java
│ │ ├── CompositeSurface.java
│ │ └── package.html
│ ├── coordinate
│ │ ├── AffinePlacement.java
│ │ ├── Arc.java
│ │ ├── ArcByBulge.java
│ │ ├── ArcString.java
│ │ ├── ArcStringByBulge.java
│ │ ├── BSplineCurve.java
│ │ ├── BSplineSurface.java
│ │ ├── BSplineSurfaceForm.java
│ │ ├── Bezier.java
│ │ ├── BicubicGrid.java
│ │ ├── BilinearGrid.java
│ │ ├── Circle.java
│ │ ├── Clothoid.java
│ │ ├── Cone.java
│ │ ├── Conic.java
│ │ ├── CubicSpline.java
│ │ ├── Cylinder.java
│ │ ├── GenericCurve.java
│ │ ├── GenericSurface.java
│ │ ├── Geodesic.java
│ │ ├── GeodesicString.java
│ │ ├── GriddedSurface.java
│ │ ├── Knot.java
│ │ ├── KnotType.java
│ │ ├── LineSegment.java
│ │ ├── LineString.java
│ │ ├── OffsetCurve.java
│ │ ├── ParamForPoint.java
│ │ ├── ParametricCurveSurface.java
│ │ ├── Placement.java
│ │ ├── PointArray.java
│ │ ├── PointGrid.java
│ │ ├── Polygon.java
│ │ ├── PolyhedralSurface.java
│ │ ├── PolynomialSpline.java
│ │ ├── Sphere.java
│ │ ├── SplineCurve.java
│ │ ├── SplineCurveForm.java
│ │ ├── Tin.java
│ │ ├── Triangle.java
│ │ ├── TriangulatedSurface.java
│ │ └── doc-files
│ │ │ ├── AffinePlacement.png
│ │ │ └── ConicCurve.png
│ └── primitive
│ │ ├── Bearing.java
│ │ ├── Curve.java
│ │ ├── CurveBoundary.java
│ │ ├── CurveInterpolation.java
│ │ ├── CurveSegment.java
│ │ ├── OrientableCurve.java
│ │ ├── OrientablePrimitive.java
│ │ ├── OrientableSurface.java
│ │ ├── Point.java
│ │ ├── Primitive.java
│ │ ├── PrimitiveBoundary.java
│ │ ├── Ring.java
│ │ ├── Shell.java
│ │ ├── Solid.java
│ │ ├── SolidBoundary.java
│ │ ├── Surface.java
│ │ ├── SurfaceBoundary.java
│ │ ├── SurfaceInterpolation.java
│ │ ├── SurfacePatch.java
│ │ └── package.html
│ ├── observation
│ ├── AnyFeature.java
│ ├── BaseUnit.java
│ ├── CompositePhenomenon.java
│ ├── CompoundPhenomenon.java
│ ├── ConstrainedPhenomenon.java
│ ├── DiscreteCoverageObservation.java
│ ├── Measure.java
│ ├── Measurement.java
│ ├── Observation.java
│ ├── ObservationCollection.java
│ ├── Phenomenon.java
│ ├── PhenomenonSeries.java
│ ├── Process.java
│ ├── ProcessModel.java
│ ├── ProcessSystem.java
│ ├── TimeSeriesObservation.java
│ ├── coverage
│ │ ├── DiscreteTimeInstantCoverage.java
│ │ └── TimeInstantValuePair.java
│ └── sampling
│ │ ├── LocatedSpecimen.java
│ │ ├── Location.java
│ │ ├── SamplingCurve.java
│ │ ├── SamplingFeature.java
│ │ ├── SamplingFeatureCollection.java
│ │ ├── SamplingFeatureRelation.java
│ │ ├── SamplingPoint.java
│ │ ├── SamplingSolid.java
│ │ ├── SamplingSurface.java
│ │ ├── SpatiallyExtensiveSamplingFeature.java
│ │ ├── Specimen.java
│ │ └── SurveyProcedure.java
│ ├── referencing
│ └── gazetteer
│ │ ├── Gazetteer.java
│ │ ├── Location.java
│ │ ├── LocationType.java
│ │ ├── ReferenceSystemUsingIdentifiers.java
│ │ └── package-info.java
│ └── style
│ ├── AnchorPoint.java
│ ├── ChannelSelection.java
│ ├── ColorMap.java
│ ├── ColorReplacement.java
│ ├── ContrastEnhancement.java
│ ├── ContrastMethod.java
│ ├── Description.java
│ ├── Displacement.java
│ ├── ExtensionSymbolizer.java
│ ├── ExternalGraphic.java
│ ├── ExternalMark.java
│ ├── FeatureTypeStyle.java
│ ├── Fill.java
│ ├── Font.java
│ ├── Graphic.java
│ ├── GraphicFill.java
│ ├── GraphicLegend.java
│ ├── GraphicStroke.java
│ ├── GraphicalSymbol.java
│ ├── Halo.java
│ ├── LabelPlacement.java
│ ├── LinePlacement.java
│ ├── LineSymbolizer.java
│ ├── Mark.java
│ ├── OverlapBehavior.java
│ ├── PointPlacement.java
│ ├── PointSymbolizer.java
│ ├── PolygonSymbolizer.java
│ ├── RasterSymbolizer.java
│ ├── Rule.java
│ ├── SelectedChannelType.java
│ ├── SemanticType.java
│ ├── ShadedRelief.java
│ ├── Stroke.java
│ ├── Style.java
│ ├── StyleFactory.java
│ ├── StyleVisitor.java
│ ├── Symbolizer.java
│ ├── TextSymbolizer.java
│ ├── doc-files
│ ├── rules.jpg
│ └── symbolizers.jpg
│ ├── package-info.java
│ └── portrayal
│ ├── AttributeDefinition.java
│ ├── AttributeValue.java
│ ├── ExternalFunction.java
│ ├── ParameterSet.java
│ ├── PortrayalOperation.java
│ └── PortrayalService.java
├── geoapi
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ └── org
│ │ │ └── opengis
│ │ │ ├── annotation
│ │ │ ├── Classifier.java
│ │ │ ├── Obligation.java
│ │ │ ├── ResourceBundles.java
│ │ │ ├── Specification.java
│ │ │ ├── Stereotype.java
│ │ │ ├── UML.java
│ │ │ └── package-info.java
│ │ │ ├── coordinate
│ │ │ ├── BufferToPoint.java
│ │ │ ├── CoordinateMetadata.java
│ │ │ ├── CoordinateSet.java
│ │ │ ├── MismatchedCoordinateMetadataException.java
│ │ │ ├── MismatchedDimensionException.java
│ │ │ └── package-info.java
│ │ │ ├── feature
│ │ │ ├── Attribute.java
│ │ │ ├── AttributeType.java
│ │ │ ├── DynamicAttribute.java
│ │ │ ├── DynamicAttributeType.java
│ │ │ ├── Feature.java
│ │ │ ├── FeatureAssociation.java
│ │ │ ├── FeatureAssociationRole.java
│ │ │ ├── FeatureInstantiationException.java
│ │ │ ├── FeatureOperationException.java
│ │ │ ├── FeatureType.java
│ │ │ ├── IdentifiedType.java
│ │ │ ├── InvalidPropertyValueException.java
│ │ │ ├── MismatchedFeatureException.java
│ │ │ ├── MultiValuedPropertyException.java
│ │ │ ├── Operation.java
│ │ │ ├── OutOfTemporalDomainException.java
│ │ │ ├── Property.java
│ │ │ ├── PropertyNotFoundException.java
│ │ │ ├── PropertyType.java
│ │ │ └── package-info.java
│ │ │ ├── filter
│ │ │ ├── BetweenComparisonOperator.java
│ │ │ ├── BinaryComparisonOperator.java
│ │ │ ├── BinarySpatialOperator.java
│ │ │ ├── ComparisonOperator.java
│ │ │ ├── ComparisonOperatorName.java
│ │ │ ├── DistanceOperator.java
│ │ │ ├── DistanceOperatorName.java
│ │ │ ├── DuplicateSortKeyException.java
│ │ │ ├── Expression.java
│ │ │ ├── Filter.java
│ │ │ ├── FilterExpressions.java
│ │ │ ├── FilterFactory.java
│ │ │ ├── FilterLiteral.java
│ │ │ ├── FilterName.java
│ │ │ ├── InvalidFilterValueException.java
│ │ │ ├── LikeOperator.java
│ │ │ ├── Literal.java
│ │ │ ├── LogicalOperator.java
│ │ │ ├── LogicalOperatorName.java
│ │ │ ├── MatchAction.java
│ │ │ ├── Name.java
│ │ │ ├── NilOperator.java
│ │ │ ├── NullOperator.java
│ │ │ ├── QueryExpression.java
│ │ │ ├── ResourceId.java
│ │ │ ├── SortBy.java
│ │ │ ├── SortOrder.java
│ │ │ ├── SortProperty.java
│ │ │ ├── SpatialOperator.java
│ │ │ ├── SpatialOperatorName.java
│ │ │ ├── TemporalOperator.java
│ │ │ ├── TemporalOperatorName.java
│ │ │ ├── ValueReference.java
│ │ │ ├── Version.java
│ │ │ ├── VersionAction.java
│ │ │ ├── capability
│ │ │ │ ├── AvailableFunction.java
│ │ │ │ ├── Conformance.java
│ │ │ │ ├── ExtendedCapabilities.java
│ │ │ │ ├── FilterCapabilities.java
│ │ │ │ ├── IdCapabilities.java
│ │ │ │ ├── ScalarCapabilities.java
│ │ │ │ ├── SpatialCapabilities.java
│ │ │ │ ├── TemporalCapabilities.java
│ │ │ │ └── package-info.java
│ │ │ └── package-info.java
│ │ │ ├── geoapi
│ │ │ └── internal
│ │ │ │ ├── Errors.java
│ │ │ │ ├── Legacy.java
│ │ │ │ ├── Produces.java
│ │ │ │ ├── Vocabulary.java
│ │ │ │ └── package-info.java
│ │ │ ├── geometry
│ │ │ ├── DirectPosition.java
│ │ │ ├── Envelope.java
│ │ │ └── package-info.java
│ │ │ ├── metadata
│ │ │ ├── ApplicationSchemaInformation.java
│ │ │ ├── Datatype.java
│ │ │ ├── ExtendedElementInformation.java
│ │ │ ├── Identifier.java
│ │ │ ├── Metadata.java
│ │ │ ├── MetadataExtensionInformation.java
│ │ │ ├── MetadataScope.java
│ │ │ ├── PortrayalCatalogueReference.java
│ │ │ ├── acquisition
│ │ │ │ ├── AcquisitionInformation.java
│ │ │ │ ├── Context.java
│ │ │ │ ├── EnvironmentalRecord.java
│ │ │ │ ├── Event.java
│ │ │ │ ├── GeometryType.java
│ │ │ │ ├── Instrument.java
│ │ │ │ ├── Objective.java
│ │ │ │ ├── ObjectiveType.java
│ │ │ │ ├── Operation.java
│ │ │ │ ├── OperationType.java
│ │ │ │ ├── Plan.java
│ │ │ │ ├── Platform.java
│ │ │ │ ├── PlatformPass.java
│ │ │ │ ├── Priority.java
│ │ │ │ ├── RequestedDate.java
│ │ │ │ ├── Requirement.java
│ │ │ │ ├── Sequence.java
│ │ │ │ ├── Trigger.java
│ │ │ │ └── package-info.java
│ │ │ ├── citation
│ │ │ │ ├── Address.java
│ │ │ │ ├── Citation.java
│ │ │ │ ├── CitationDate.java
│ │ │ │ ├── Contact.java
│ │ │ │ ├── DateType.java
│ │ │ │ ├── Individual.java
│ │ │ │ ├── OnLineFunction.java
│ │ │ │ ├── OnlineResource.java
│ │ │ │ ├── Organisation.java
│ │ │ │ ├── Party.java
│ │ │ │ ├── PresentationForm.java
│ │ │ │ ├── Responsibility.java
│ │ │ │ ├── ResponsibleParty.java
│ │ │ │ ├── Role.java
│ │ │ │ ├── Series.java
│ │ │ │ ├── Telephone.java
│ │ │ │ ├── TelephoneType.java
│ │ │ │ └── package-info.java
│ │ │ ├── constraint
│ │ │ │ ├── Classification.java
│ │ │ │ ├── Constraints.java
│ │ │ │ ├── LegalConstraints.java
│ │ │ │ ├── Releasability.java
│ │ │ │ ├── Restriction.java
│ │ │ │ ├── SecurityConstraints.java
│ │ │ │ └── package-info.java
│ │ │ ├── content
│ │ │ │ ├── AttributeGroup.java
│ │ │ │ ├── Band.java
│ │ │ │ ├── BandDefinition.java
│ │ │ │ ├── ContentInformation.java
│ │ │ │ ├── CoverageContentType.java
│ │ │ │ ├── CoverageDescription.java
│ │ │ │ ├── FeatureCatalogueDescription.java
│ │ │ │ ├── FeatureTypeInfo.java
│ │ │ │ ├── ImageDescription.java
│ │ │ │ ├── ImagingCondition.java
│ │ │ │ ├── PolarisationOrientation.java
│ │ │ │ ├── RangeDimension.java
│ │ │ │ ├── RangeElementDescription.java
│ │ │ │ ├── SampleDimension.java
│ │ │ │ ├── TransferFunctionType.java
│ │ │ │ └── package-info.java
│ │ │ ├── distribution
│ │ │ │ ├── DataFile.java
│ │ │ │ ├── DigitalTransferOptions.java
│ │ │ │ ├── Distribution.java
│ │ │ │ ├── Distributor.java
│ │ │ │ ├── Format.java
│ │ │ │ ├── Medium.java
│ │ │ │ ├── MediumFormat.java
│ │ │ │ ├── StandardOrderProcess.java
│ │ │ │ └── package-info.java
│ │ │ ├── extent
│ │ │ │ ├── BoundingPolygon.java
│ │ │ │ ├── Extent.java
│ │ │ │ ├── GeographicBoundingBox.java
│ │ │ │ ├── GeographicDescription.java
│ │ │ │ ├── GeographicExtent.java
│ │ │ │ ├── SpatialTemporalExtent.java
│ │ │ │ ├── TemporalExtent.java
│ │ │ │ ├── VerticalExtent.java
│ │ │ │ └── package-info.java
│ │ │ ├── identification
│ │ │ │ ├── AggregateInformation.java
│ │ │ │ ├── AssociatedResource.java
│ │ │ │ ├── AssociationType.java
│ │ │ │ ├── BrowseGraphic.java
│ │ │ │ ├── CharacterSet.java
│ │ │ │ ├── CoupledResource.java
│ │ │ │ ├── CouplingType.java
│ │ │ │ ├── DataIdentification.java
│ │ │ │ ├── DistributedComputingPlatform.java
│ │ │ │ ├── Identification.java
│ │ │ │ ├── InitiativeType.java
│ │ │ │ ├── KeywordClass.java
│ │ │ │ ├── KeywordType.java
│ │ │ │ ├── Keywords.java
│ │ │ │ ├── OperationChainMetadata.java
│ │ │ │ ├── OperationMetadata.java
│ │ │ │ ├── Parameter.html
│ │ │ │ ├── Progress.java
│ │ │ │ ├── RepresentativeFraction.java
│ │ │ │ ├── Resolution.java
│ │ │ │ ├── ServiceIdentification.java
│ │ │ │ ├── TopicCategory.java
│ │ │ │ ├── Usage.java
│ │ │ │ └── package-info.java
│ │ │ ├── lineage
│ │ │ │ ├── Algorithm.java
│ │ │ │ ├── Lineage.java
│ │ │ │ ├── NominalResolution.java
│ │ │ │ ├── ProcessStep.java
│ │ │ │ ├── ProcessStepReport.java
│ │ │ │ ├── Processing.java
│ │ │ │ ├── Source.java
│ │ │ │ └── package-info.java
│ │ │ ├── maintenance
│ │ │ │ ├── MaintenanceFrequency.java
│ │ │ │ ├── MaintenanceInformation.java
│ │ │ │ ├── Scope.java
│ │ │ │ ├── ScopeCode.java
│ │ │ │ ├── ScopeDescription.java
│ │ │ │ └── package-info.java
│ │ │ ├── package-info.java
│ │ │ ├── quality
│ │ │ │ ├── AbsoluteExternalPositionalAccuracy.java
│ │ │ │ ├── AccuracyOfATimeMeasurement.java
│ │ │ │ ├── AggregationDerivation.java
│ │ │ │ ├── BasicMeasure.java
│ │ │ │ ├── Completeness.java
│ │ │ │ ├── CompletenessCommission.java
│ │ │ │ ├── CompletenessOmission.java
│ │ │ │ ├── ConceptualConsistency.java
│ │ │ │ ├── Confidence.java
│ │ │ │ ├── ConformanceResult.java
│ │ │ │ ├── CoverageResult.java
│ │ │ │ ├── DataEvaluation.java
│ │ │ │ ├── DataQuality.java
│ │ │ │ ├── Description.java
│ │ │ │ ├── DescriptiveResult.java
│ │ │ │ ├── DomainConsistency.java
│ │ │ │ ├── Element.java
│ │ │ │ ├── EvaluationMethod.java
│ │ │ │ ├── EvaluationMethodType.java
│ │ │ │ ├── FormatConsistency.java
│ │ │ │ ├── FullInspection.java
│ │ │ │ ├── GriddedDataPositionalAccuracy.java
│ │ │ │ ├── Homogeneity.java
│ │ │ │ ├── IndirectEvaluation.java
│ │ │ │ ├── LogicalConsistency.java
│ │ │ │ ├── Measure.java
│ │ │ │ ├── MeasureInstanceReference.java
│ │ │ │ ├── MeasureReference.java
│ │ │ │ ├── Metaquality.java
│ │ │ │ ├── NonQuantitativeAttributeAccuracy.java
│ │ │ │ ├── NonQuantitativeAttributeCorrectness.java
│ │ │ │ ├── Parameter.html
│ │ │ │ ├── PositionalAccuracy.java
│ │ │ │ ├── QuantitativeAttributeAccuracy.java
│ │ │ │ ├── QuantitativeResult.java
│ │ │ │ ├── RelativeInternalPositionalAccuracy.java
│ │ │ │ ├── Representativity.java
│ │ │ │ ├── Result.java
│ │ │ │ ├── SampleBasedInspection.java
│ │ │ │ ├── Scope.java
│ │ │ │ ├── SourceReference.java
│ │ │ │ ├── StandaloneQualityReportInformation.java
│ │ │ │ ├── TemporalAccuracy.java
│ │ │ │ ├── TemporalConsistency.java
│ │ │ │ ├── TemporalQuality.java
│ │ │ │ ├── TemporalValidity.java
│ │ │ │ ├── ThematicAccuracy.java
│ │ │ │ ├── ThematicClassificationCorrectness.java
│ │ │ │ ├── TopologicalConsistency.java
│ │ │ │ ├── Usability.java
│ │ │ │ ├── ValueStructure.java
│ │ │ │ └── package-info.java
│ │ │ └── spatial
│ │ │ │ ├── CellGeometry.java
│ │ │ │ ├── Dimension.java
│ │ │ │ ├── DimensionNameType.java
│ │ │ │ ├── GCP.java
│ │ │ │ ├── GCPCollection.java
│ │ │ │ ├── GeolocationInformation.java
│ │ │ │ ├── GeometricObjectType.java
│ │ │ │ ├── GeometricObjects.java
│ │ │ │ ├── Georectified.java
│ │ │ │ ├── Georeferenceable.java
│ │ │ │ ├── GridSpatialRepresentation.java
│ │ │ │ ├── PixelOrientation.java
│ │ │ │ ├── SpatialRepresentation.java
│ │ │ │ ├── SpatialRepresentationType.java
│ │ │ │ ├── TopologyLevel.java
│ │ │ │ ├── VectorSpatialRepresentation.java
│ │ │ │ └── package-info.java
│ │ │ ├── parameter
│ │ │ ├── GeneralParameterDescriptor.java
│ │ │ ├── GeneralParameterValue.java
│ │ │ ├── InvalidParameterCardinalityException.java
│ │ │ ├── InvalidParameterNameException.java
│ │ │ ├── InvalidParameterTypeException.java
│ │ │ ├── InvalidParameterValueException.java
│ │ │ ├── ParameterDescriptor.java
│ │ │ ├── ParameterDescriptorGroup.java
│ │ │ ├── ParameterDirection.java
│ │ │ ├── ParameterNotFoundException.java
│ │ │ ├── ParameterValue.java
│ │ │ ├── ParameterValueGroup.java
│ │ │ └── package-info.java
│ │ │ ├── referencing
│ │ │ ├── AuthorityFactory.java
│ │ │ ├── IdentifiedObject.java
│ │ │ ├── NoSuchAuthorityCodeException.java
│ │ │ ├── ObjectDomain.java
│ │ │ ├── ObjectFactory.java
│ │ │ ├── ReferenceSystem.java
│ │ │ ├── ReferenceSystemType.java
│ │ │ ├── RegisterOperations.java
│ │ │ ├── crs
│ │ │ │ ├── CRSAuthorityFactory.java
│ │ │ │ ├── CRSFactory.java
│ │ │ │ ├── CompoundCRS.java
│ │ │ │ ├── CompoundCS.java
│ │ │ │ ├── CoordinateReferenceSystem.java
│ │ │ │ ├── DerivedCRS.java
│ │ │ │ ├── EngineeringCRS.java
│ │ │ │ ├── GeodeticCRS.java
│ │ │ │ ├── GeographicCRS.java
│ │ │ │ ├── ParametricCRS.java
│ │ │ │ ├── ProjectedCRS.java
│ │ │ │ ├── SingleCRS.java
│ │ │ │ ├── TemporalCRS.java
│ │ │ │ ├── VerticalCRS.java
│ │ │ │ └── package-info.java
│ │ │ ├── cs
│ │ │ │ ├── AffineCS.java
│ │ │ │ ├── AxisDirection.java
│ │ │ │ ├── CSAuthorityFactory.java
│ │ │ │ ├── CSFactory.java
│ │ │ │ ├── CartesianCS.java
│ │ │ │ ├── CoordinateDataType.java
│ │ │ │ ├── CoordinateSystem.java
│ │ │ │ ├── CoordinateSystemAxis.java
│ │ │ │ ├── CylindricalCS.java
│ │ │ │ ├── EllipsoidalCS.java
│ │ │ │ ├── LinearCS.java
│ │ │ │ ├── ParametricCS.java
│ │ │ │ ├── PolarCS.java
│ │ │ │ ├── RangeMeaning.java
│ │ │ │ ├── SphericalCS.java
│ │ │ │ ├── TimeCS.java
│ │ │ │ ├── TimeUnit.java
│ │ │ │ ├── VerticalCS.java
│ │ │ │ └── package-info.java
│ │ │ ├── datum
│ │ │ │ ├── Datum.java
│ │ │ │ ├── DatumAuthorityFactory.java
│ │ │ │ ├── DatumEnsemble.java
│ │ │ │ ├── DatumFactory.java
│ │ │ │ ├── DynamicReferenceFrame.java
│ │ │ │ ├── Ellipsoid.java
│ │ │ │ ├── EngineeringDatum.java
│ │ │ │ ├── GeodeticDatum.java
│ │ │ │ ├── ParametricDatum.java
│ │ │ │ ├── PrimeMeridian.java
│ │ │ │ ├── RealizationMethod.java
│ │ │ │ ├── TemporalDatum.java
│ │ │ │ ├── VerticalDatum.java
│ │ │ │ └── package-info.java
│ │ │ ├── operation
│ │ │ │ ├── ConcatenatedOperation.java
│ │ │ │ ├── Conversion.java
│ │ │ │ ├── CoordinateOperation.java
│ │ │ │ ├── CoordinateOperationAuthorityFactory.java
│ │ │ │ ├── CoordinateOperationFactory.java
│ │ │ │ ├── Formula.java
│ │ │ │ ├── MathTransform.java
│ │ │ │ ├── MathTransform1D.java
│ │ │ │ ├── MathTransform2D.java
│ │ │ │ ├── MathTransformFactory.java
│ │ │ │ ├── Matrix.java
│ │ │ │ ├── NoninvertibleTransformException.java
│ │ │ │ ├── OperationMethod.java
│ │ │ │ ├── OperationNotFoundException.java
│ │ │ │ ├── PassThroughOperation.java
│ │ │ │ ├── PointMotionOperation.java
│ │ │ │ ├── SingleOperation.java
│ │ │ │ ├── TransformException.java
│ │ │ │ ├── Transformation.java
│ │ │ │ └── package-info.java
│ │ │ └── package-info.java
│ │ │ ├── temporal
│ │ │ ├── IndeterminatePositionException.java
│ │ │ ├── IndeterminateValue.java
│ │ │ ├── Instant.java
│ │ │ ├── Period.java
│ │ │ ├── TemporalPrimitive.java
│ │ │ └── package-info.java
│ │ │ └── util
│ │ │ ├── CodeList.java
│ │ │ ├── ControlledVocabulary.java
│ │ │ ├── Factory.java
│ │ │ ├── FactoryException.java
│ │ │ ├── GenericName.java
│ │ │ ├── InternationalString.java
│ │ │ ├── LocalName.java
│ │ │ ├── MemberName.java
│ │ │ ├── NameFactory.java
│ │ │ ├── NameSpace.java
│ │ │ ├── NoSuchIdentifierException.java
│ │ │ ├── Record.java
│ │ │ ├── RecordSchema.java
│ │ │ ├── RecordType.java
│ │ │ ├── ScopedName.java
│ │ │ ├── Type.java
│ │ │ ├── TypeName.java
│ │ │ ├── UnimplementedServiceException.java
│ │ │ └── package-info.java
│ ├── python
│ │ ├── README.md
│ │ ├── docs
│ │ │ ├── geometry
│ │ │ │ ├── overview.md
│ │ │ │ └── primitive.md
│ │ │ ├── index.md
│ │ │ ├── metadata
│ │ │ │ ├── acquisition.md
│ │ │ │ ├── base.md
│ │ │ │ ├── citation.md
│ │ │ │ ├── constraints.md
│ │ │ │ ├── content.md
│ │ │ │ ├── distribution.md
│ │ │ │ ├── extension.md
│ │ │ │ ├── extent.md
│ │ │ │ ├── identification.md
│ │ │ │ ├── lineage.md
│ │ │ │ ├── maintenance.md
│ │ │ │ ├── naming.md
│ │ │ │ ├── overview.md
│ │ │ │ ├── quality.md
│ │ │ │ ├── representation.md
│ │ │ │ └── service.md
│ │ │ ├── referencing
│ │ │ │ ├── common.md
│ │ │ │ ├── coordinate.md
│ │ │ │ ├── crs.md
│ │ │ │ ├── cs.md
│ │ │ │ ├── datum.md
│ │ │ │ ├── operation.md
│ │ │ │ └── overview.md
│ │ │ └── util
│ │ │ │ ├── measure.md
│ │ │ │ └── overview.md
│ │ ├── mkdocs.yml
│ │ ├── opengis
│ │ │ ├── __init__.py
│ │ │ ├── geometry
│ │ │ │ ├── __init__.py
│ │ │ │ └── primitive.py
│ │ │ ├── metadata
│ │ │ │ ├── __init__.py
│ │ │ │ ├── acquisition.py
│ │ │ │ ├── base.py
│ │ │ │ ├── citation.py
│ │ │ │ ├── constraints.py
│ │ │ │ ├── content.py
│ │ │ │ ├── distribution.py
│ │ │ │ ├── extension.py
│ │ │ │ ├── extent.py
│ │ │ │ ├── identification.py
│ │ │ │ ├── lineage.py
│ │ │ │ ├── maintenance.py
│ │ │ │ ├── naming.py
│ │ │ │ ├── quality.py
│ │ │ │ ├── representation.py
│ │ │ │ └── service.py
│ │ │ ├── py.typed
│ │ │ ├── referencing
│ │ │ │ ├── __init__.py
│ │ │ │ ├── common.py
│ │ │ │ ├── coordinate.py
│ │ │ │ ├── crs.py
│ │ │ │ ├── cs.py
│ │ │ │ ├── datum.py
│ │ │ │ └── operation.py
│ │ │ └── util
│ │ │ │ ├── __init__.py
│ │ │ │ └── measure.py
│ │ ├── pyproject.toml
│ │ ├── python-todo.md
│ │ └── requirements.txt
│ └── resources
│ │ └── org
│ │ └── opengis
│ │ ├── annotation
│ │ └── class-index.properties
│ │ └── metadata
│ │ ├── 2003
│ │ └── charset-codes.properties
│ │ ├── CodeLists.properties
│ │ ├── CodeLists_en.properties
│ │ ├── CodeLists_fr.properties
│ │ ├── Descriptions.properties
│ │ ├── Descriptions_en.properties
│ │ ├── Descriptions_en_US.properties
│ │ └── Descriptions_fr.properties
│ ├── pending
│ └── java
│ │ ├── module-info.java
│ │ └── org
│ │ └── opengis
│ │ └── geometry
│ │ ├── Geometry.java
│ │ └── primitive
│ │ ├── Point.java
│ │ └── package-info.java
│ ├── shared
│ ├── README.md
│ └── java
│ │ └── org
│ │ └── opengis
│ │ └── geoapi
│ │ ├── Content.java
│ │ ├── package-info.java
│ │ └── schema
│ │ ├── Departures.java
│ │ ├── DocumentationStyle.java
│ │ ├── NameSpaces.java
│ │ ├── SchemaException.java
│ │ ├── SchemaInformation.java
│ │ └── package-info.java
│ └── test
│ ├── java
│ └── org
│ │ └── opengis
│ │ ├── annotation
│ │ └── ResourceBundlesTest.java
│ │ ├── coordinate
│ │ └── CoordinateSetTest.java
│ │ ├── filter
│ │ ├── FilterExpressionsTest.java
│ │ ├── FilterNameTest.java
│ │ ├── NameTest.java
│ │ └── TemporalOperatorNameTest.java
│ │ ├── geoapi
│ │ ├── ClassIndexTest.java
│ │ ├── CodeListTest.java
│ │ ├── CompatibilityTest.java
│ │ ├── CompatibilityVerifier.java
│ │ ├── ContentTest.java
│ │ ├── IncompatibleChange.java
│ │ ├── MethodSignatureTest.java
│ │ ├── ProducesTest.java
│ │ ├── Release.java
│ │ └── SourceGenerator.java
│ │ ├── metadata
│ │ ├── DescriptionsTest.java
│ │ ├── LegacyCodesTest.java
│ │ └── quality
│ │ │ ├── ElementImpl.java
│ │ │ ├── ElementTest.java
│ │ │ ├── EvaluationMethodImpl.java
│ │ │ └── ValueStructureTest.java
│ │ ├── referencing
│ │ ├── AuthorityFactoryMock.java
│ │ ├── AuthorityFactoryTest.java
│ │ ├── IdentifiedObjectMock.java
│ │ ├── ReferenceSystemTypeTest.java
│ │ ├── RegisterOperationsMock.java
│ │ ├── RegisterOperationsTest.java
│ │ ├── crs
│ │ │ ├── CompoundCRSMock.java
│ │ │ ├── CompoundCRSTest.java
│ │ │ └── CoordinateSystemMock.java
│ │ ├── cs
│ │ │ ├── AxisDirectionTest.java
│ │ │ └── TimeUnitTest.java
│ │ └── operation
│ │ │ ├── MatrixMock.java
│ │ │ └── MatrixTest.java
│ │ └── util
│ │ └── CodeListTest.java
│ └── python
│ └── test_metadata.py
├── ogcmetanorma.json
├── pom.xml
├── src
├── README.md
├── main
│ ├── javadoc
│ │ ├── README.md
│ │ ├── content.css
│ │ ├── content.html
│ │ ├── departure.css
│ │ ├── geoapi.css
│ │ ├── overview.html
│ │ └── warning.png
│ ├── metanorma
│ │ ├── .gitignore
│ │ ├── Gemfile
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── build.sh
│ │ ├── code
│ │ │ └── java
│ │ │ │ ├── JNDI.adoc
│ │ │ │ ├── annotation.adoc
│ │ │ │ ├── code_list.adoc
│ │ │ │ ├── coordinate_operation.adoc
│ │ │ │ ├── create_crs.adoc
│ │ │ │ ├── internationalization.adoc
│ │ │ │ ├── metadata.adoc
│ │ │ │ └── parameterized_units.adoc
│ │ ├── figures
│ │ │ ├── annotations.svg
│ │ │ ├── derivatives.png
│ │ │ ├── enumeration_examples.svg
│ │ │ ├── expression.svg
│ │ │ ├── factories.svg
│ │ │ ├── filter.svg
│ │ │ ├── filter_function.svg
│ │ │ ├── localization.svg
│ │ │ ├── math_transform.svg
│ │ │ ├── metadata.svg
│ │ │ ├── metadata_referencing.svg
│ │ │ ├── names.svg
│ │ │ ├── packages.svg
│ │ │ ├── path_components.svg
│ │ │ ├── records.svg
│ │ │ └── referencing.svg
│ │ ├── geoapi.css
│ │ ├── metanorma.yml
│ │ ├── requirements
│ │ │ ├── README.md
│ │ │ ├── class_app.adoc
│ │ │ ├── class_lib.adoc
│ │ │ ├── req_behavior.adoc
│ │ │ ├── req_factory_methods.adoc
│ │ │ ├── req_getters.adoc
│ │ │ ├── req_implementation_discovery.adoc
│ │ │ ├── req_setters.adoc
│ │ │ └── req_signatures.adoc
│ │ ├── sections
│ │ │ ├── annex-bibliography.adoc
│ │ │ ├── annex-code.adoc
│ │ │ ├── annex-history.adoc
│ │ │ ├── annex-tests.adoc
│ │ │ ├── clause_0_front_material.adoc
│ │ │ ├── clause_1_scope.adoc
│ │ │ ├── clause_2_conformance.adoc
│ │ │ ├── clause_3_references.adoc
│ │ │ ├── clause_4_terms_and_definitions.adoc
│ │ │ ├── clause_5_conventions.adoc
│ │ │ ├── clause_6_informative_text.adoc
│ │ │ ├── clause_7_normative_text.adoc
│ │ │ ├── informative
│ │ │ │ ├── annotations.adoc
│ │ │ │ ├── collections.adoc
│ │ │ │ ├── common_types.adoc
│ │ │ │ ├── controlled_vocabulary.adoc
│ │ │ │ ├── core_types.adoc
│ │ │ │ ├── datetime.adoc
│ │ │ │ ├── derived_properties.adoc
│ │ │ │ ├── feature
│ │ │ │ │ ├── index.adoc
│ │ │ │ │ └── moving.adoc
│ │ │ │ ├── filter
│ │ │ │ │ ├── capabilities.adoc
│ │ │ │ │ ├── departures.adoc
│ │ │ │ │ ├── expression.adoc
│ │ │ │ │ ├── filter.adoc
│ │ │ │ │ └── index.adoc
│ │ │ │ ├── generic_name.adoc
│ │ │ │ ├── geometry
│ │ │ │ │ ├── departures.adoc
│ │ │ │ │ └── index.adoc
│ │ │ │ ├── internationalization.adoc
│ │ │ │ ├── mapping_rules.adoc
│ │ │ │ ├── metadata
│ │ │ │ │ ├── departures.adoc
│ │ │ │ │ ├── index.adoc
│ │ │ │ │ ├── mapping.adoc
│ │ │ │ │ ├── nil_values.adoc
│ │ │ │ │ └── reference_system.adoc
│ │ │ │ ├── multiplicity.adoc
│ │ │ │ ├── naming.adoc
│ │ │ │ ├── parameters.adoc
│ │ │ │ ├── records.adoc
│ │ │ │ ├── referencing
│ │ │ │ │ ├── coordinate_operation.adoc
│ │ │ │ │ ├── coordinate_system.adoc
│ │ │ │ │ ├── departures.adoc
│ │ │ │ │ ├── factories.adoc
│ │ │ │ │ ├── index.adoc
│ │ │ │ │ ├── math_transform.adoc
│ │ │ │ │ └── wkt.adoc
│ │ │ │ ├── temporal
│ │ │ │ │ ├── departures.adoc
│ │ │ │ │ └── index.adoc
│ │ │ │ └── units.adoc
│ │ │ └── profiles
│ │ │ │ ├── java
│ │ │ │ ├── annex.adoc
│ │ │ │ ├── filter.adoc
│ │ │ │ ├── tests.adoc
│ │ │ │ └── uom_jsr.adoc
│ │ │ │ └── python
│ │ │ │ └── annex.adoc
│ │ ├── standard.adoc
│ │ └── tests
│ │ │ ├── README.adoc
│ │ │ ├── class_core.adoc
│ │ │ ├── test_invariants.adoc
│ │ │ └── test_signatures.adoc
│ └── python
│ │ ├── MANIFEST.in
│ │ ├── README.md
│ │ ├── build.py
│ │ └── setup.py
└── release-notes.properties
└── tools
├── README.md
├── pom.xml
└── src
├── main
├── bash
│ ├── README.md
│ ├── generate-javadoc.sh
│ ├── update_all.sh
│ └── update_copyright_years.sh
└── java
│ ├── module-info.java
│ └── org
│ └── opengis
│ └── tools
│ ├── apt
│ ├── Classes.java
│ ├── IndexGenerator.java
│ ├── UMLMember.java
│ ├── UmlProcessor.java
│ └── package-info.java
│ ├── doclet
│ ├── BlockTaglet.java
│ ├── Departure.java
│ ├── DepartureElement.java
│ ├── FlushableDoclet.java
│ └── package-info.java
│ └── version
│ ├── ChangeReport.java
│ ├── Dependency.java
│ ├── JavaElement.java
│ ├── JavaElementChanges.java
│ ├── JavaElementCollector.java
│ ├── JavaElementKind.java
│ ├── Version.java
│ └── package-info.java
└── test
└── java
└── org
└── opengis
└── tools
├── apt
└── RunCompilation.java
└── version
└── VersionTest.java
/.gitignore:
--------------------------------------------------------------------------------
1 | # Maven files
2 | target/
3 |
4 | # Netbeans files
5 | nbactions.xml
6 |
7 | # Eclipse files
8 | .classpath
9 | .project
10 | .settings/
11 |
12 | # IntelliJ files
13 | .idea/
14 | *.iml
15 |
16 | # VS Code settings
17 | .vscode/
18 |
19 | # MacOS files
20 | .DS_Store
21 |
22 | # Magic/Mojo
23 | .magic
24 |
25 | # Python related files
26 | # ------------------------------------------------
27 | # Python files
28 | __pycache__/
29 | *.pyc
30 |
31 | # python virtual environments
32 | .venv
33 | venv
34 |
35 | # Ruff linter cache
36 | .ruff_cache
37 |
38 | # static type checking
39 | .mypy_cache
40 |
41 | # unit tests
42 | .pytest_cache
43 |
44 | # build files
45 | geoapi.egg-info/
46 | # ------------------------------------------------
47 |
--------------------------------------------------------------------------------
/geoapi-conformance/src/main/java/org/opengis/test/ComputationFailure.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2011-2024 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.test;
19 |
20 | import org.opentest4j.AssertionFailedError;
21 |
22 |
23 | /**
24 | * Base class for exceptions thrown when a numerical computation did not produced
25 | * the expected value.
26 | *
27 | * @author Martin Desruisseaux (Geomatys)
28 | * @version 3.1
29 | * @since 3.1
30 | */
31 | public abstract class ComputationFailure extends AssertionFailedError {
32 | /**
33 | * For cross-version compatibility.
34 | */
35 | private static final long serialVersionUID = 7082843147964652170L;
36 |
37 | /**
38 | * Creates a new exception with the given message.
39 | *
40 | * @param message the details message.
41 | */
42 | public ComputationFailure(final String message) {
43 | super(message);
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/geoapi-conformance/src/main/java/org/opengis/test/coverage/image/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2012-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | /**
20 | * Test suites for coverage implemented on top of the Java Image I/O API.
21 | * Using the standard Image I/O API is one possible implementation strategy among others.
22 | * For vendors who choose this strategy, this package may facilitate their tests.
23 | *
24 | * @author Martin Desruisseaux (Geomatys)
25 | * @version 3.1
26 | * @since 3.1
27 | */
28 | package org.opengis.test.coverage.image;
29 |
--------------------------------------------------------------------------------
/geoapi-conformance/src/main/java/org/opengis/test/dataset/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2018-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | /**
20 | * Provides small test data files together with verification methods for applications reading those data.
21 | * The test files are less than 15 kilobytes since their purpose is not to test implementation scalability.
22 | * The test files are intentionally simple, sometimes with only a subset of the metadata found in the field,
23 | * for making easier for application developers to use them in a debugging session.
24 | *
25 | * @author Martin Desruisseaux (Geomatys)
26 | * @version 3.1
27 | * @since 3.1
28 | */
29 | package org.opengis.test.dataset;
30 |
--------------------------------------------------------------------------------
/geoapi-conformance/src/main/java/org/opengis/test/geometry/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2008-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | /**
20 | * Validators and test suites for the {@code org.opengis.geometry} package.
21 | *
22 | * @author Martin Desruisseaux (Geomatys)
23 | * @version 3.0
24 | * @since 2.2
25 | */
26 | package org.opengis.test.geometry;
27 |
--------------------------------------------------------------------------------
/geoapi-conformance/src/main/java/org/opengis/test/metadata/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2008-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | /**
20 | * Validators and test suites for the {@code org.opengis.metadata} package. The main validator
21 | * is {@link org.opengis.test.metadata.MetadataBaseValidator#validate(org.opengis.metadata.Metadata)
22 | * MetadataBaseValidator.validate(Metadata)}.
23 | *
24 | * @author Martin Desruisseaux (Geomatys)
25 | * @version 3.1
26 | * @since 2.2
27 | */
28 | package org.opengis.test.metadata;
29 |
--------------------------------------------------------------------------------
/geoapi-conformance/src/main/java/org/opengis/test/referencing/DerivativeFailure.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2011-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.test.referencing;
19 |
20 | import org.opengis.test.ComputationFailure;
21 | import org.opengis.referencing.operation.MathTransform;
22 |
23 |
24 | /**
25 | * Thrown by {@link TransformTestCase#verifyDerivative(double[])} when a transform
26 | * {@linkplain MathTransform#derivative(DirectPosition) derivative} did not produced
27 | * the expected values.
28 | *
29 | * @author Martin Desruisseaux (Geomatys)
30 | * @version 3.1
31 | * @since 3.1
32 | */
33 | public class DerivativeFailure extends ComputationFailure {
34 | /**
35 | * For cross-version compatibility.
36 | */
37 | private static final long serialVersionUID = -6513702144732051132L;
38 |
39 | /**
40 | * Creates a new exception with the given message.
41 | *
42 | * @param message the details message.
43 | */
44 | public DerivativeFailure(final String message) {
45 | super(message);
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/geoapi-conformance/src/main/java/org/opengis/test/referencing/TransformFailure.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2008-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.test.referencing;
19 |
20 | import org.opengis.test.ComputationFailure;
21 | import org.opengis.referencing.operation.MathTransform;
22 |
23 |
24 | /**
25 | * Thrown by {@link TransformTestCase} when a {@link MathTransform} did not produced
26 | * the expected value.
27 | *
28 | * @author Martin Desruisseaux (Geomatys)
29 | * @version 3.0
30 | * @since 2.2
31 | */
32 | public class TransformFailure extends ComputationFailure {
33 | /**
34 | * For cross-version compatibility.
35 | */
36 | private static final long serialVersionUID = -7105975654433582652L;
37 |
38 | /**
39 | * Creates a new exception with the given message.
40 | *
41 | * @param message the details message.
42 | */
43 | public TransformFailure(final String message) {
44 | super(message);
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/geoapi-conformance/src/main/java/org/opengis/test/report/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2011-2024 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | /**
20 | * Generates HTML pages that summarize the operations provided by a GeoAPI implementation.
21 | * Implementers can override the {@link org.opengis.test.report.Report} subclasses for customizing the reports.
22 | *
23 | * @author Martin Desruisseaux (Geomatys)
24 | * @version 3.1
25 | * @since 3.1
26 | */
27 | package org.opengis.test.report;
28 |
--------------------------------------------------------------------------------
/geoapi-conformance/src/main/java/org/opengis/test/util/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2008-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | /**
20 | * Validators and test suites for the {@code org.opengis.util} package.
21 | *
22 | * @author Martin Desruisseaux (Geomatys)
23 | * @version 3.0
24 | * @since 2.2
25 | */
26 | package org.opengis.test.util;
27 |
--------------------------------------------------------------------------------
/geoapi-conformance/src/main/resources/org/opengis/test/dataset/Cube2D_geographic_packed.nc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opengeospatial/geoapi/04262b65da0f14d219e6b7f2876c456a07cdb272/geoapi-conformance/src/main/resources/org/opengis/test/dataset/Cube2D_geographic_packed.nc
--------------------------------------------------------------------------------
/geoapi-conformance/src/main/resources/org/opengis/test/dataset/Cube4D_projected_float.nc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opengeospatial/geoapi/04262b65da0f14d219e6b7f2876c456a07cdb272/geoapi-conformance/src/main/resources/org/opengis/test/dataset/Cube4D_projected_float.nc
--------------------------------------------------------------------------------
/geoapi-conformance/src/main/resources/org/opengis/test/dataset/MovingFeatures.nc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opengeospatial/geoapi/04262b65da0f14d219e6b7f2876c456a07cdb272/geoapi-conformance/src/main/resources/org/opengis/test/dataset/MovingFeatures.nc
--------------------------------------------------------------------------------
/geoapi-conformance/src/main/resources/org/opengis/test/dataset/README.md:
--------------------------------------------------------------------------------
1 | # Directory content
2 |
3 | ## Cube2D_geographic_packed.nc
4 | A two-dimensional netCDF file containing temperature data packed as 16 bits signed integers (only the positive range is used).
5 | The Coordinate Reference System is a geographic with latitudes ranging from 90°S to 90°N and longitudes from 180°E to 180°W.
6 | Based on the freely available `2005092200_sst_21-24.en.nc` test file downloaded from
7 | [Unidate](http://www.unidata.ucar.edu/software/netcdf-java/formats/DataDiscoveryAttConvention.html) on October 5, 2011.
8 | Decimated and transformed for GeoAPI conformance test purpose.
9 |
10 |
11 | ## Cube4D_projected_float.nc
12 | A four-dimensional netCDF file containing "Current Icing Product" data, decimated and cropped.
13 | The Coordinate Reference System is projected, with an elevation above geoid and a time axis.
14 | The geographic area is East of North America.
15 | Based on a file was kindly provided by Aaron Braeckel from UCAR.
16 | Cropped and transformed for GeoAPI conformance test purpose.
17 |
18 |
19 | ## MovingFeatures.nc
20 | A small extract of `JaPOPPO.csv` example file from Moving Features standard working group.
21 | Encoded as specified in [OGC 16-114](http://docs.opengeospatial.org/bp/16-114r3/16-114r3.html).
22 |
--------------------------------------------------------------------------------
/geoapi-conformance/src/main/resources/org/opengis/test/report/AuthorityCodes.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | ${TITLE}
6 |
7 |
8 |
9 |
10 |
${TITLE}
11 |
This list is generated from the ${FACTORY.NAME} dataset version ${FACTORY.VERSION}${FACTORY.VERSION.SUFFIX}.
12 | All those ${OBJECTS.KIND} are supported by the ${PRODUCT.NAME}
13 | library version ${PRODUCT.VERSION}${PRODUCT.VERSION.SUFFIX},
14 | except those with a red text in the last column.
15 | There is ${COUNT.OBJECTS} codes, ${PERCENT.VALIDS} of them being supported.
16 |
17 | ${DESCRIPTION}
18 |
19 |
20 | Code Name Remarks
21 | ${CONTENT}
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/geoapi-conformance/src/main/resources/org/opengis/test/report/OperationParameters.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | ${TITLE}
6 |
7 |
8 |
9 |
10 |
${TITLE}
11 |
This list is generated from the ${PRODUCT.NAME} library version ${PRODUCT.VERSION}.
12 | The rows are grouped by ${OBJECTS.KIND} in bold characters, followed by their
13 | parameters .
14 | The names in italic are primary names
15 | while other names are aliases .
16 | All those names and aliases are known to the library.
17 |
18 | ${DESCRIPTION}
19 |
20 | ${CONTENT}
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/geoapi-conformance/src/main/resources/org/opengis/test/report/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Table of contents
6 |
7 |
8 |
9 |
10 |
Table of contents
11 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/geoapi-conformance/src/main/resources/org/opengis/test/runner/documentinfo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opengeospatial/geoapi/04262b65da0f14d219e6b7f2876c456a07cdb272/geoapi-conformance/src/main/resources/org/opengis/test/runner/documentinfo.png
--------------------------------------------------------------------------------
/geoapi-conformance/src/main/resources/org/opengis/test/runner/mydocuments.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opengeospatial/geoapi/04262b65da0f14d219e6b7f2876c456a07cdb272/geoapi-conformance/src/main/resources/org/opengis/test/runner/mydocuments.png
--------------------------------------------------------------------------------
/geoapi-conformance/src/main/resources/org/opengis/test/runner/start.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opengeospatial/geoapi/04262b65da0f14d219e6b7f2876c456a07cdb272/geoapi-conformance/src/main/resources/org/opengis/test/runner/start.png
--------------------------------------------------------------------------------
/geoapi-conformance/src/test/resources/org/opengis/test/coverage/image/PointLoma.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opengeospatial/geoapi/04262b65da0f14d219e6b7f2876c456a07cdb272/geoapi-conformance/src/test/resources/org/opengis/test/coverage/image/PointLoma.png
--------------------------------------------------------------------------------
/geoapi-conformance/src/test/resources/org/opengis/test/coverage/image/README.md:
--------------------------------------------------------------------------------
1 | ## Image sources:
2 |
3 | ### PointLoma.png
4 | File `2.1.09.tiff` from http://sipi.usc.edu/database
5 | smoothed and reduced to a size of 192×192 pixels.
6 | Considered free to use (from web site on 2012-06-07).
7 |
--------------------------------------------------------------------------------
/geoapi-examples/src/main/java/org/opengis/example/coverage/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * This file is hereby placed into the Public Domain.
4 | * This means anyone is free to do whatever they wish with this file.
5 | */
6 |
7 | /**
8 | * Implementation of some interfaces from the {@link org.opengis.coverage} package.
9 | *
10 | * Every classes in this package are hereby placed into the Public Domain.
11 | * This means anyone is free to do whatever they wish with those files.
12 | */
13 | package org.opengis.example.coverage;
14 |
--------------------------------------------------------------------------------
/geoapi-examples/src/main/java/org/opengis/example/geometry/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * This file is hereby placed into the Public Domain.
4 | * This means anyone is free to do whatever they wish with this file.
5 | */
6 |
7 | /**
8 | * Implementation of some interfaces from the {@link org.opengis.geometry} package.
9 | *
10 | * Every classes in this package are hereby placed into the Public Domain.
11 | * This means anyone is free to do whatever they wish with those files.
12 | */
13 | package org.opengis.example.geometry;
14 |
--------------------------------------------------------------------------------
/geoapi-examples/src/main/java/org/opengis/example/metadata/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * This file is hereby placed into the Public Domain.
4 | * This means anyone is free to do whatever they wish with this file.
5 | */
6 |
7 | /**
8 | * Implementation of some interfaces from the {@link org.opengis.metadata} package. This package
9 | * demonstrates that it is possible to implement all interfaces in the {@code org.opengis.metadata}
10 | * package and sub-packages with minimal effort using {@link java.lang.reflect.Proxy}.
11 | * This implementation stores the metadata values in {@link java.util.Map} objects, but the same
12 | * strategy can also be applied on a wide variety of storage mechanisms like JDBC connection or a
13 | * LDAP protocol.
14 | *
15 | * In addition to the proxy classes, this package provides an explicit implementation of the
16 | * {@link org.opengis.metadata.citation.Citation} interface because it is widely used by the
17 | * referencing packages.
18 | *
19 | * Every classes in this package are hereby placed into the Public Domain.
20 | * This means anyone is free to do whatever they wish with those files.
21 | */
22 | package org.opengis.example.metadata;
23 |
--------------------------------------------------------------------------------
/geoapi-examples/src/main/java/org/opengis/example/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * This file is hereby placed into the Public Domain.
4 | * This means anyone is free to do whatever they wish with this file.
5 | */
6 |
7 | /**
8 | * Access to examples of GeoAPI implementations.
9 | * This package is provided only for illustrative purposes with simple implementations.
10 | * This package is not for use in production.
11 | * For real applications, use a library implementing GeoAPI or providing GeoAPI wrappers.
12 | */
13 | package org.opengis.example;
14 |
--------------------------------------------------------------------------------
/geoapi-examples/src/main/java/org/opengis/example/referencing/SimpleMatrix.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * This file is hereby placed into the Public Domain.
4 | * This means anyone is free to do whatever they wish with this file.
5 | */
6 | package org.opengis.example.referencing;
7 |
8 | import javax.vecmath.GMatrix;
9 | import org.opengis.referencing.operation.Matrix;
10 |
11 |
12 | /**
13 | * A {@link Matrix} built on top of Java3D {@code vecmath} library.
14 | */
15 | public class SimpleMatrix extends GMatrix implements Matrix {
16 | /**
17 | * For cross-version compatibility.
18 | */
19 | private static final long serialVersionUID = -1756594679120634738L;
20 |
21 | /**
22 | * Creates a matrix of size {@code numRow} × {@code numCol}.
23 | * Elements on the diagonal (j == i ) are set to 1.
24 | *
25 | * @param numRow number of rows.
26 | * @param numCol number of columns.
27 | */
28 | public SimpleMatrix(final int numRow, final int numCol) {
29 | super(numRow, numCol);
30 | }
31 |
32 | /**
33 | * Creates a new matrix initialized to the same content as the given matrix.
34 | *
35 | * @param matrix the matrix to copy.
36 | */
37 | @SuppressWarnings("this-escape")
38 | public SimpleMatrix(final Matrix matrix) {
39 | super(matrix.getNumRow(), matrix.getNumCol());
40 | for (int j=super.getNumRow(); --j>=0;) {
41 | for (int i=super.getNumCol(); --i>=0;) {
42 | setElement(j, i, matrix.getElement(j, i));
43 | }
44 | }
45 | }
46 |
47 | /**
48 | * Returns a clone of this matrix.
49 | */
50 | @Override
51 | public SimpleMatrix clone() {
52 | return (SimpleMatrix) super.clone();
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/geoapi-examples/src/main/java/org/opengis/example/util/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * This file is hereby placed into the Public Domain.
4 | * This means anyone is free to do whatever they wish with this file.
5 | */
6 |
7 | /**
8 | * Implementation of some interfaces from the {@link org.opengis.util} package.
9 | * The {@link org.opengis.example.util.SimpleName} and related classes are built
10 | * on top of the JNDI {@link javax.naming} package.
11 | *
12 | * Every classes in this package are hereby placed into the Public Domain.
13 | * This means anyone is free to do whatever they wish with those files.
14 | */
15 | package org.opengis.example.util;
16 |
--------------------------------------------------------------------------------
/geoapi-examples/src/test/java/org/opengis/example/referencing/AffineTransform2DTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * This file is hereby placed into the Public Domain.
4 | * This means anyone is free to do whatever they wish with this file.
5 | */
6 | package org.opengis.example.referencing;
7 |
8 | import org.opengis.util.FactoryException;
9 | import org.opengis.referencing.operation.TransformException;
10 | import org.opengis.test.referencing.AffineTransformTest;
11 | import org.junit.jupiter.api.AfterEach;
12 | import org.junit.jupiter.api.Test;
13 |
14 | import static org.junit.jupiter.api.Assertions.*;
15 |
16 |
17 | /**
18 | * Tests {@link AffineTransform2D} using the
19 | * geoapi-conformance
20 | * module.
21 | */
22 | public class AffineTransform2DTest extends AffineTransformTest {
23 | /**
24 | * Creates a new test case.
25 | */
26 | public AffineTransform2DTest() {
27 | super(ProjectiveTransformTest.factory());
28 | }
29 |
30 | /**
31 | * Declares that our implementation cannot invert such transform, then delegate to the parent class.
32 | */
33 | @Test
34 | @Override
35 | public void testDimensionReduction() throws FactoryException, TransformException {
36 | isInverseTransformSupported = false;
37 | super.testDimensionReduction();
38 | }
39 |
40 | /**
41 | * Invoked after every tests in order to ensure that the transform created by the factory
42 | * is of the expected type.
43 | */
44 | @AfterEach
45 | public void ensureExpectedTransformClass() {
46 | assertEquals(ProjectiveTransform.class, transform.getClass(), "Unexpected transform instance.");
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/geoapi-examples/src/test/java/org/opengis/example/util/SimpleNameTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * This file is hereby placed into the Public Domain.
4 | * This means anyone is free to do whatever they wish with this file.
5 | */
6 | package org.opengis.example.util;
7 |
8 | import org.opengis.test.util.NameTest;
9 |
10 |
11 | /**
12 | * Tests the {@link SimpleName} implementations.
13 | * This class inherits its the tests from the {@code geoapi-conformance} module.
14 | */
15 | public class SimpleNameTest extends NameTest {
16 | /**
17 | * Initializes a new test case using the {@linkplain SimpleNameFactory#DEFAULT default factory}.
18 | */
19 | public SimpleNameTest() {
20 | super(SimpleNameFactory.DEFAULT);
21 | isMultiLocaleSupported = false;
22 | isMixedNameSyntaxSupported = false;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/geoapi-java-python/src/main/java/org/opengis/bridge/python/EnvironmentException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2018-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.bridge.python;
19 |
20 |
21 | /**
22 | * Thrown if a configuration error prevents the Java-Python bridge to work normally.
23 | *
24 | * @author Martin Desruisseaux (Geomatys)
25 | * @version 4.0
26 | * @since 4.0
27 | */
28 | public class EnvironmentException extends RuntimeException {
29 | /**
30 | * For cross-version compatibility.
31 | */
32 | private static final long serialVersionUID = 8844371625357866961L;
33 |
34 | /**
35 | * Creates a new exception with the given message and cause.
36 | *
37 | * @param message a description of the problem.
38 | * @param cause the cause of this problem.
39 | */
40 | public EnvironmentException(final String message, final Exception cause) {
41 | super(message, cause);
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/geoapi-java-python/src/main/java9/module-info.txt:
--------------------------------------------------------------------------------
1 | This module does not yet declare a module-info.java file because it
2 | depends on JAR files that are not yet available as Java 9 modules.
3 |
--------------------------------------------------------------------------------
/geoapi-java-python/src/main/python/opengis/bridge/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | Python implementation of GeoAPI delegating the work to an implementation in another language.
3 | """
4 |
--------------------------------------------------------------------------------
/geoapi-java-python/src/main/python/opengis/bridge/java/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | Python implementation of GeoAPI delegating the work to a Java implementation.
3 | """
4 |
--------------------------------------------------------------------------------
/geoapi-java-python/src/main/resources/org/opengis/bridge/python/subclassed.txt:
--------------------------------------------------------------------------------
1 | org.opengis.metadata.citation.Party
2 | org.opengis.metadata.citation.Responsibility
3 | org.opengis.metadata.constraint.Constraints
4 | org.opengis.metadata.content.ContentInformation
5 | org.opengis.metadata.content.CoverageDescription
6 | org.opengis.metadata.content.RangeDimension
7 | org.opengis.metadata.content.SampleDimension
8 | org.opengis.metadata.extent.GeographicExtent
9 | org.opengis.metadata.extent.TemporalExtent
10 | org.opengis.metadata.identification.AssociatedResource
11 | org.opengis.metadata.identification.Identification
12 | org.opengis.metadata.quality.Completeness
13 | org.opengis.metadata.quality.Element
14 | org.opengis.metadata.quality.LogicalConsistency
15 | org.opengis.metadata.quality.PositionalAccuracy
16 | org.opengis.metadata.quality.Result
17 | org.opengis.metadata.quality.TemporalAccuracy
18 | org.opengis.metadata.quality.ThematicAccuracy
19 | org.opengis.metadata.spatial.GeolocationInformation
20 | org.opengis.metadata.spatial.GridSpatialRepresentation
21 | org.opengis.metadata.spatial.SpatialRepresentation
22 | org.opengis.parameter.GeneralParameterDescriptor
23 | org.opengis.parameter.GeneralParameterValue
24 | org.opengis.referencing.IdentifiedObject
25 | org.opengis.referencing.ReferenceSystem
26 | org.opengis.referencing.crs.CoordinateReferenceSystem
27 | org.opengis.referencing.crs.DerivedCRS
28 | org.opengis.referencing.crs.GeodeticCRS
29 | org.opengis.referencing.crs.SingleCRS
30 | org.opengis.referencing.cs.AffineCS
31 | org.opengis.referencing.cs.CoordinateSystem
32 | org.opengis.referencing.datum.Datum
33 | org.opengis.referencing.operation.CoordinateOperation
34 | org.opengis.referencing.operation.SingleOperation
35 |
--------------------------------------------------------------------------------
/geoapi-java-python/src/test/python/test_referencing.py:
--------------------------------------------------------------------------------
1 | #
2 | # GeoAPI - Programming interfaces for OGC/ISO standards
3 | # Copyright © 2019-2023 Open Geospatial Consortium, Inc.
4 | # http://www.geoapi.org
5 | #
6 |
7 | #
8 | # To run this demo, the PYTHONPATH environmental variable must be set to a directory which
9 | # contain at least the "geoapi/src/main/python" and "geoapi-java-python/src/main/python"
10 | # content (such directory can be created for example by "geoapi-python-wheel" module; we may
11 | # provide a simpler approach in the future if https://github.com/opengeospatial/geoapi/issues/30
12 | # is done.)
13 | #
14 | # In addition, JPY_PY_CONFIG environment variable shall be set to the path to a jpyconfig.py file,
15 | # and that file shall contain paths to a Java implementation of GeoAPI as documented in
16 | # http://www.geoapi.org/java-python/index.html
17 | #
18 | # To execute this test on command-line:
19 | #
20 | # cd $GEOAPI_HOME/geoapi-java-python/src/test/python
21 | # python -m unittest discover
22 | #
23 |
24 | import jpyutil
25 | jpyutil.init_jvm()
26 |
27 | import jpy
28 | import opengis.bridge.java.referencing
29 | import unittest
30 |
31 |
32 | class TestReferencing(unittest.TestCase):
33 |
34 | def test_find_crs(self):
35 | self._handler = jpy.get_type('org.opengis.bridge.python.PythonHelper')
36 | value = self._handler.findCoordinateReferenceSystem("EPSG:3395")
37 | if value:
38 | crs = opengis.bridge.java.referencing.CoordinateReferenceSystem(value)
39 | self.assertEqual(crs.name.code, "WGS 84 / World Mercator")
40 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/coverage/CurveValuePair.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2005-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.coverage;
19 |
20 | import org.opengis.geometry.primitive.Curve;
21 | import org.opengis.annotation.UML;
22 |
23 | import static org.opengis.annotation.Obligation.*;
24 | import static org.opengis.annotation.Specification.*;
25 |
26 |
27 | /**
28 | * A {@linkplain GeometryValuePair geometry-value pair} that has a {@linkplain Curve curve}
29 | * as the value of its geometry attribute.
30 | *
31 | * @version ISO 19123:2004
32 | * @author Alessio Fabiani
33 | * @author Martin Desruisseaux (IRD)
34 | * @since GeoAPI 2.1
35 | */
36 | @UML(identifier="CV_CurveValuePair", specification=ISO_19123)
37 | public interface CurveValuePair extends GeometryValuePair {
38 | /**
39 | * The domain object that is a member of this geometry -value pair.
40 | *
41 | * @return the geometry member of the pair.
42 | */
43 | @UML(identifier="geometry", obligation=MANDATORY, specification=ISO_19123)
44 | DomainObject getGeometry();
45 | }
46 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/coverage/PointValuePair.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2005-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.coverage;
19 |
20 | import org.opengis.geometry.primitive.Point;
21 | import org.opengis.annotation.UML;
22 |
23 | import static org.opengis.annotation.Obligation.*;
24 | import static org.opengis.annotation.Specification.*;
25 |
26 |
27 | /**
28 | * A {@linkplain GeometryValuePair geometry-value pair} that has a {@linkplain Point point}
29 | * as the value of its geometry attribute.
30 | *
31 | * @version ISO 19123:2004
32 | * @author Wim Koolhoven
33 | * @since GeoAPI 2.1
34 | */
35 | @UML(identifier="CV_PointValuePair", specification=ISO_19123)
36 | public interface PointValuePair extends GeometryValuePair {
37 | /**
38 | * The point that is a member of this point -value pair.
39 | */
40 | @UML(identifier="geometry", obligation=MANDATORY, specification=ISO_19123)
41 | DomainObject getGeometry();
42 | }
43 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/coverage/SolidValuePair.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2005-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.coverage;
19 |
20 | import org.opengis.geometry.primitive.Solid;
21 | import org.opengis.annotation.UML;
22 |
23 | import static org.opengis.annotation.Obligation.*;
24 | import static org.opengis.annotation.Specification.*;
25 |
26 |
27 | /**
28 | * A {@linkplain GeometryValuePair geometry-value pair} that has a {@linkplain Solid solid}
29 | * as the value of its geometry attribute.
30 | *
31 | * @version ISO 19123:2004
32 | * @author Alessio Fabiani
33 | * @author Martin Desruisseaux (IRD)
34 | * @since GeoAPI 2.1
35 | */
36 | @UML(identifier="CV_SolidValuePair", specification=ISO_19123)
37 | public interface SolidValuePair extends GeometryValuePair {
38 | /**
39 | * The domain object that is a member of this geometry -value pair.
40 | *
41 | * @return the geometry member of the pair.
42 | */
43 | @UML(identifier="geometry", obligation=MANDATORY, specification=ISO_19123)
44 | DomainObject getGeometry();
45 | }
46 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/coverage/SurfaceValuePair.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2005-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.coverage;
19 |
20 | import org.opengis.geometry.primitive.Surface;
21 | import org.opengis.annotation.UML;
22 |
23 | import static org.opengis.annotation.Obligation.*;
24 | import static org.opengis.annotation.Specification.*;
25 |
26 |
27 | /**
28 | * A {@linkplain GeometryValuePair geometry-value pair} that has a {@linkplain Surface surface}
29 | * as the value of its geometry attribute.
30 | *
31 | * @version ISO 19123:2004
32 | * @author Alessio Fabiani
33 | * @author Martin Desruisseaux (IRD)
34 | * @since GeoAPI 2.1
35 | */
36 | @UML(identifier="CV_SurfaceValuePair", specification=ISO_19123)
37 | public interface SurfaceValuePair extends GeometryValuePair {
38 | /**
39 | * The domain object that is a member of this geometry -value pair.
40 | *
41 | * @return the geometry member of the pair.
42 | */
43 | @UML(identifier="geometry", obligation=MANDATORY, specification=ISO_19123)
44 | DomainObject getGeometry();
45 | }
46 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/coverage/grid/doc-files/BoustrophedonicScanning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opengeospatial/geoapi/04262b65da0f14d219e6b7f2876c456a07cdb272/geoapi-pending/src/main/java/org/opengis/coverage/grid/doc-files/BoustrophedonicScanning.png
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/coverage/grid/doc-files/CantorDiagonalScanning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opengeospatial/geoapi/04262b65da0f14d219e6b7f2876c456a07cdb272/geoapi-pending/src/main/java/org/opengis/coverage/grid/doc-files/CantorDiagonalScanning.png
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/coverage/grid/doc-files/Hilbert.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opengeospatial/geoapi/04262b65da0f14d219e6b7f2876c456a07cdb272/geoapi-pending/src/main/java/org/opengis/coverage/grid/doc-files/Hilbert.png
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/coverage/grid/doc-files/LinearScanning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opengeospatial/geoapi/04262b65da0f14d219e6b7f2876c456a07cdb272/geoapi-pending/src/main/java/org/opengis/coverage/grid/doc-files/LinearScanning.png
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/coverage/grid/doc-files/Morton.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opengeospatial/geoapi/04262b65da0f14d219e6b7f2876c456a07cdb272/geoapi-pending/src/main/java/org/opengis/coverage/grid/doc-files/Morton.png
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/coverage/grid/doc-files/SpiralScanning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opengeospatial/geoapi/04262b65da0f14d219e6b7f2876c456a07cdb272/geoapi-pending/src/main/java/org/opengis/coverage/grid/doc-files/SpiralScanning.png
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/geometry/aggregate/Aggregate.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2003-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.geometry.aggregate;
19 |
20 | import java.util.Set;
21 | import org.opengis.geometry.Geometry;
22 | import org.opengis.annotation.UML;
23 |
24 | import static org.opengis.annotation.Obligation.*;
25 | import static org.opengis.annotation.Specification.*;
26 |
27 |
28 | /**
29 | * Geometry that is an aggregate of other geometries.
30 | *
31 | * @version ISO 19107
32 | * @since GeoAPI 1.0
33 | */
34 | @UML(identifier="GM_Aggregate", specification=ISO_19107)
35 | public interface Aggregate extends Geometry {
36 | /**
37 | * Returns the set containing the elements that compose this aggregate. The
38 | * set may be modified if this geometry {@linkplain #isMutable is mutable}.
39 | *
40 | * @return the set containing the elements that compose this aggregate.
41 | */
42 | @UML(identifier="element", obligation=MANDATORY, specification=ISO_19107)
43 | Set extends Geometry> getElements();
44 | }
45 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/geometry/aggregate/package.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | package org.opengis.geometry.aggregate
6 |
7 |
8 | {@linkplain org.opengis.geometry.aggregate.Aggregate Aggregations} of geometric objects.
9 | The following is adapted from
10 | Feature Geometry (Topic 1) specification.
11 |
12 | Arbitrary aggregations of geometric objects are possible. These are not
13 | assumed to have any additional internal structure and are used to "collect" pieces of geometry
14 | of a specified type. In this respect they differ from "composites" and "complexes". Operations
15 | on these aggregations shall be the accumulators that are derived from the class operations of
16 | their elements. Applications may use aggregates for features that use multiple geometric objects
17 | in their representations, such as a collection of points to represent a tank farm or orchard.
18 |
19 |
20 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/geometry/complex/ComplexBoundary.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2003-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.geometry.complex;
19 |
20 | import org.opengis.geometry.Boundary;
21 | import org.opengis.annotation.UML;
22 |
23 | import static org.opengis.annotation.Specification.*;
24 |
25 |
26 | /**
27 | * The boundary of {@linkplain Complex complex} objects. The
28 | * {@link org.opengis.geometry.Geometry#getBoundary getBoundary()} method for {@link Complex}
29 | * objects shall return a {@code ComplexBoundary}, which is a collection of primitives
30 | * and a {@linkplain Complex complex} of dimension 1 less than the original object.
31 | *
32 | * @version ISO 19107
33 | * @author Martin Desruisseaux (IRD)
34 | * @since GeoAPI 1.0
35 | */
36 | @UML(identifier="GM_ComplexBoundary", specification=ISO_19107)
37 | public interface ComplexBoundary extends Boundary {
38 | }
39 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/geometry/coordinate/ArcByBulge.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2003-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.geometry.coordinate;
19 |
20 | import org.opengis.annotation.UML;
21 |
22 | import static org.opengis.annotation.Specification.*;
23 |
24 |
25 | /**
26 | * Equivalents to the {@link Arc}, except the bulge representation is maintained.
27 | *
28 | * @version ISO 19107
29 | * @author Martin Desruisseaux (IRD)
30 | * @since GeoAPI 1.0
31 | */
32 | @UML(identifier="GM_ArcByBulge", specification=ISO_19107)
33 | public interface ArcByBulge extends ArcStringByBulge {
34 | /**
35 | * Recast as a base {@linkplain Arc arc}.
36 | *
37 | * @return This arc by bulge as a base {@linkplain Arc arc}.
38 | */
39 | Arc asArcString();
40 | }
41 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/geometry/coordinate/Bezier.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2003-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.geometry.coordinate;
19 |
20 | import org.opengis.annotation.UML;
21 |
22 | import static org.opengis.annotation.Specification.*;
23 |
24 |
25 | /**
26 | * Polynomial splines that use Bezier or Bernstein polynomials for interpolation
27 | * purposes. An n -long control point array shall create a polynomial
28 | * curve of degree n that defines the entire curve segment. These curves
29 | * are defined in terms of a set of basis functions called the Bézier or Bernstein
30 | * polynomials.
31 | *
32 | * @version ISO 19107
33 | * @author Martin Desruisseaux (IRD)
34 | * @since GeoAPI 2.0
35 | *
36 | * @todo Add equations from ISO 19107 to the javadoc.
37 | */
38 | @UML(identifier="GM_Bezier", specification=ISO_19107)
39 | public interface Bezier extends BSplineCurve {
40 | }
41 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/geometry/coordinate/BilinearGrid.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2003-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.geometry.coordinate;
19 |
20 | import org.opengis.annotation.UML;
21 |
22 | import static org.opengis.annotation.Specification.*;
23 |
24 |
25 | /**
26 | * A {@linkplain GriddedSurface gridded surface} that uses line strings as the horizontal and
27 | * vertical curves. This is not a polygonal surface, since each of the grid squares is a ruled
28 | * surface, and not necessarily planar.
29 | *
30 | * @version ISO 19107
31 | * @author Martin Desruisseaux (IRD)
32 | * @since GeoAPI 2.0
33 | */
34 | @UML(identifier="GM_BilinearGrid", specification=ISO_19107)
35 | public interface BilinearGrid extends GriddedSurface {
36 | }
37 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/geometry/coordinate/Circle.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2003-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.geometry.coordinate;
19 |
20 | import org.opengis.annotation.UML;
21 |
22 | import static org.opengis.annotation.Specification.*;
23 |
24 |
25 | /**
26 | * Same as an {@linkplain Arc arc}, but closed to form a full circle.
27 | * The {@linkplain #getStartAngle start} and {@linkplain #getEndAngle end bearing}
28 | * are equal and shall be the bearing for the first {@linkplain #getControlPoints
29 | * control point} listed.
30 | *
31 | * This still requires at least 3 distinct non-co-linear points to be unambiguously
32 | * defined. The arc is simply extended until the first point is encountered.
33 | *
34 | * @version ISO 19107
35 | * @author Martin Desruisseaux (IRD)
36 | * @since GeoAPI 1.0
37 | */
38 | @UML(identifier="GM_Circle", specification=ISO_19107)
39 | public interface Circle extends Arc {
40 | }
41 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/geometry/coordinate/Cylinder.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2003-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.geometry.coordinate;
19 |
20 | import org.opengis.annotation.UML;
21 |
22 | import static org.opengis.annotation.Specification.*;
23 |
24 |
25 | /**
26 | * A {@linkplain GriddedSurface gridded surface} given as a family of circles whose positions
27 | * vary along a set of parallel lines, keeping the cross sectional horizontal curves of a constant
28 | * shape. Given the same working assumptions as in {@linkplain GriddedSurface gridded surface}, a
29 | * cylinder can be given by two circles, giving us control points of the form
30 | *
31 | * <<P1, P2, P3>, <P4, P5, P6>>.
32 | *
33 | * @version ISO 19107
34 | * @author Martin Desruisseaux (IRD)
35 | * @since GeoAPI 2.0
36 | */
37 | @UML(identifier="GM_Cylinder", specification=ISO_19107)
38 | public interface Cylinder extends GriddedSurface {
39 | }
40 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/geometry/coordinate/TriangulatedSurface.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2003-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.geometry.coordinate;
19 |
20 | import java.util.List;
21 | import org.opengis.annotation.UML;
22 |
23 | import static org.opengis.annotation.Obligation.*;
24 | import static org.opengis.annotation.Specification.*;
25 |
26 |
27 | /**
28 | * A polyhedral surface that is composed only of {@linkplain Triangle triangles}.
29 | * There is no restriction on how the triangulation is derived.
30 | *
31 | * @version ISO 19107
32 | * @author Martin Desruisseaux (IRD)
33 | * @since GeoAPI 2.0
34 | */
35 | @UML(identifier="GM_TriangulatedSurface", specification=ISO_19107)
36 | public interface TriangulatedSurface extends PolyhedralSurface {
37 | /**
38 | * Associates this surface with its individual triangles.
39 | */
40 | @UML(identifier="patch", obligation=MANDATORY, specification=ISO_19107)
41 | List getPatches();
42 | }
43 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/geometry/coordinate/doc-files/AffinePlacement.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opengeospatial/geoapi/04262b65da0f14d219e6b7f2876c456a07cdb272/geoapi-pending/src/main/java/org/opengis/geometry/coordinate/doc-files/AffinePlacement.png
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/geometry/coordinate/doc-files/ConicCurve.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opengeospatial/geoapi/04262b65da0f14d219e6b7f2876c456a07cdb272/geoapi-pending/src/main/java/org/opengis/geometry/coordinate/doc-files/ConicCurve.png
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/geometry/primitive/PrimitiveBoundary.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2003-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.geometry.primitive;
19 |
20 | import org.opengis.geometry.Boundary;
21 | import org.opengis.annotation.UML;
22 |
23 | import static org.opengis.annotation.Specification.*;
24 |
25 |
26 | /**
27 | * The boundary of {@linkplain Primitive primitive} objects. This is the root for the various
28 | * return types of the {@link org.opengis.geometry.Geometry#getBoundary getBoundary()} method for
29 | * subtypes of {@link Primitive}. Since points have no boundary, no special subclass is needed
30 | * for their boundary.
31 | *
32 | * @version ISO 19107
33 | * @author Martin Desruisseaux (IRD)
34 | * @since GeoAPI 1.0
35 | */
36 | @UML(identifier="GM_PrimitiveBoundary", specification=ISO_19107)
37 | public interface PrimitiveBoundary extends Boundary {
38 | }
39 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/observation/AnyFeature.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2009-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.observation;
19 |
20 | import org.opengis.annotation.UML;
21 |
22 | import static org.opengis.annotation.Specification.*;
23 |
24 | /**
25 | * This interface represents the set of all classes with the stereotype {@literal <>}.
26 | * This class is implemented in GML by the element gml:AbstractFeature
27 | *
28 | * @version Implementation specification 1.0
29 | * @author Open Geospatial Consortium
30 | * @author Guilhem Legal (Geomatys)
31 | * @since GeoAPI 2.3
32 | */
33 | @UML(identifier="AnyFeature", specification=OGC_07022)
34 | public interface AnyFeature {
35 | }
36 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/observation/BaseUnit.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2009-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.observation;
19 |
20 | /**
21 | * @version Implementation specification 1.0
22 | * @author Open Geospatial Consortium
23 | * @author Guilhem Legal (Geomatys)
24 | * @since GeoAPI 2.3
25 | *
26 | */
27 | public interface BaseUnit {
28 |
29 | /**
30 | * The alphanumeric identifier of the unit.
31 | */
32 | String getId();
33 |
34 | /**
35 | * The full name of the uom.
36 | */
37 | String getName();
38 |
39 | /**
40 | * The quantity type.
41 | */
42 | String getQuantityType();
43 |
44 | /**
45 | * The system defining this unit f measure.
46 | */
47 | String getUnitsSystem();
48 |
49 | }
50 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/observation/CompoundPhenomenon.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2009-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.observation;
19 |
20 | import org.opengis.annotation.UML;
21 |
22 | import static org.opengis.annotation.Specification.*;
23 | import static org.opengis.annotation.Obligation.*;
24 |
25 | /**
26 | * A CompoundProperty has several components, whose count is indicated by the
27 | * dimension. CompoundProperty is an abstract class. Two concrete specializations
28 | * are provided : CompositeProperty and PropertySeries.
29 | *
30 | * @version Implementation specification 1.0
31 | * @author Open Geospatial Consortium
32 | * @author Guilhem Legal (Geomatys)
33 | * @since GeoAPI 2.3
34 | */
35 | @UML(identifier="CompoundPhenomenon", specification=OGC_07022)
36 | public interface CompoundPhenomenon extends Phenomenon {
37 |
38 | /**
39 | * The number of components in the tuple.
40 | */
41 | @UML(identifier="dimension", obligation=MANDATORY, specification=OGC_07022)
42 | int getDimension();
43 |
44 | }
45 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/observation/Measure.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2005-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.observation;
19 |
20 | import org.opengis.annotation.UML;
21 |
22 | import static org.opengis.annotation.Specification.*;
23 |
24 | /**
25 | * Value described using a numeric amount with a scale or using a scalar reference system
26 | *
27 | * @version Implementation specification 1.0
28 | * @author Open Geospatial Consortium
29 | * @author Guilhem Legal (Geomatys)
30 | * @since GeoAPI 2.3
31 | */
32 | @UML(identifier="Measure", specification=OGC_07022)
33 | public interface Measure {
34 |
35 | /**
36 | * The value of the measure.
37 | */
38 | float getValue();
39 |
40 | /**
41 | * The value of uom (Units Of Measure) attribute is a reference to a Reference System for the amount, either a ratio or position scale.
42 | */
43 | BaseUnit getUom();
44 | }
45 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/observation/Measurement.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2009-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.observation;
19 |
20 | import org.opengis.annotation.UML;
21 |
22 | import static org.opengis.annotation.Specification.*;
23 | import static org.opengis.annotation.Obligation.*;
24 |
25 | /**
26 | * An observation whose result is a measure
27 | * Measurement event. Carries one "result" properties of type "Measure"
28 | *
29 | * @version Implementation specification 1.0
30 | * @author Open Geospatial Consortium
31 | * @author Guilhem Legal (Geomatys)
32 | * @since GeoAPI 2.3
33 | */
34 | @UML(identifier="Measurement", specification=OGC_07022)
35 | public interface Measurement extends Observation {
36 |
37 | @UML(identifier="result", obligation=MANDATORY, specification=OGC_07022)
38 | Measure getResult();
39 |
40 | }
41 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/observation/ObservationCollection.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2009-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.observation;
19 |
20 | import java.util.List;
21 | import org.opengis.annotation.UML;
22 |
23 | import static org.opengis.annotation.Specification.*;
24 | import static org.opengis.annotation.Obligation.*;
25 |
26 | /**
27 | * Observation collection, using the "Composite" pattern
28 | *
29 | * @version Implementation specification 1.0
30 | * @author Open Geospatial Consortium
31 | * @author Guilhem Legal (Geomatys)
32 | * @since GeoAPI 2.3
33 | */
34 | @UML(identifier="ObservationCollection", specification=OGC_07022)
35 | public interface ObservationCollection {
36 |
37 | @UML(identifier="member", obligation=MANDATORY, specification=OGC_07022)
38 | List getMember();
39 |
40 | }
41 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/observation/Phenomenon.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2009-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.observation;
19 |
20 | import org.opengis.annotation.UML;
21 |
22 | import static org.opengis.annotation.Specification.*;
23 |
24 | /**
25 | * The basic PropertyType class carries a definition, with an identifier and an optional set
26 | * of aliases. Two kinds of specializations are supported: constraints and compounding.
27 | *
28 | * @version Implementation specification 1.0
29 | * @author Open Geospatial Consortium
30 | * @author Guilhem Legal (Geomatys)
31 | * @since GeoAPI 2.3
32 | */
33 | @UML(identifier="Phenomenon", specification=OGC_07022)
34 | public interface Phenomenon {
35 | }
36 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/observation/Process.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2009-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.observation;
19 |
20 | import org.opengis.annotation.UML;
21 |
22 | import static org.opengis.annotation.Specification.*;
23 |
24 | /**
25 | * The description of Observation procedures is beyond the scope of this specification.
26 | *
27 | * NOTE: It is expected that standard process model descriptions will be published in a standard location
28 | * (e.g. ISO 19135 register) enabling them to be used by-reference.
29 | *
30 | *
31 | * @version Implementation specification 1.0
32 | * @author Open Geospatial Consortium
33 | * @author Guilhem Legal (Geomatys)
34 | * @since GeoAPI 2.3
35 | */
36 | @UML(identifier="Process", specification=OGC_07022)
37 | public interface Process {
38 | }
39 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/observation/ProcessModel.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2009-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.observation;
19 |
20 | import org.opengis.annotation.UML;
21 |
22 | import static org.opengis.annotation.Specification.*;
23 |
24 | /**
25 | * ProcessModel is an atomic procedure.
26 | *
27 | * @version Implementation specification 1.0
28 | * @author Open Geospatial Consortium
29 | * @author Guilhem Legal (Geomatys)
30 | * @since GeoAPI 2.3
31 | */
32 | @UML(identifier="ProcessModel", specification=OGC_07022)
33 | public interface ProcessModel extends Process {
34 | }
35 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/observation/ProcessSystem.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2009-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.observation;
19 |
20 | import java.util.List;
21 | import org.opengis.annotation.UML;
22 |
23 | import static org.opengis.annotation.Specification.*;
24 | import static org.opengis.annotation.Obligation.*;
25 |
26 | /**
27 | * ProcessSystem aggregates sub-processes, which may apply either in parallel (as a
28 | * process package) or sequentially (in a processing chain) or a mixture.
29 | *
30 | * @version Implementation specification 1.0
31 | * @author Open Geospatial Consortium
32 | * @author Guilhem Legal (Geomatys)
33 | * @since GeoAPI 2.3
34 | */
35 | @UML(identifier="ProcessSystem", specification=OGC_07022)
36 | public interface ProcessSystem extends Process {
37 |
38 | @UML(identifier="component", obligation=MANDATORY, specification=OGC_07022)
39 | List getComponent();
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/observation/coverage/DiscreteTimeInstantCoverage.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2009-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.observation.coverage;
19 |
20 | import org.opengis.annotation.UML;
21 | import org.opengis.coverage.DiscreteCoverage;
22 |
23 | import static org.opengis.annotation.Specification.*;
24 |
25 | /**
26 | * Specialization of ISO 19123 CV_DiscreteTimeInstantCoverage.
27 | * Explicit implementation of specialized CV_DiscreteCoverage in which the coverage domain is composed of time-instants.
28 | *
29 | * @version Implementation specification 1.0
30 | * @author Open Geospatial Consortium
31 | * @author Guilhem Legal (Geomatys)
32 | * @since GeoAPI 2.3
33 | */
34 | @UML(identifier="CV_DiscreteTimeInstantCoverage", specification=OGC_07022)
35 | public interface DiscreteTimeInstantCoverage extends DiscreteCoverage {
36 |
37 | public TimeInstantValuePair element = null;
38 |
39 | }
40 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/observation/coverage/TimeInstantValuePair.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2009-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.observation.coverage;
19 |
20 | import org.opengis.annotation.UML;
21 |
22 | import static org.opengis.annotation.Specification.*;
23 | import org.opengis.temporal.TemporalPrimitive;
24 |
25 | /**
26 | * Specialization of ISO 19123 CV_GeometryValuePair.
27 | * Explicit implementation of CV_TimeInstantValuePair - this is the temporal equivalent to CV_PointValuePair.
28 | *
29 | * @version Implementation specification 1.0
30 | * @author Open Geospatial Consortium
31 | * @author Guilhem Legal (Geomatys)
32 | * @since GeoAPI 2.3
33 | */
34 | @UML(identifier="CV_DiscreteTimeInstantCoverage", specification=OGC_07022)
35 | public interface TimeInstantValuePair {
36 |
37 | /**
38 | * Implicitly xs:anyType. Use xsi:type attribute to indicate the datatype at run-time.
39 | */
40 | Object getValue();
41 |
42 | TemporalPrimitive getGeometry();
43 |
44 | }
45 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/observation/sampling/SamplingPoint.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2009-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.observation.sampling;
19 |
20 | import org.opengis.geometry.primitive.Point;
21 | import org.opengis.annotation.UML;
22 |
23 | import static org.opengis.annotation.Specification.*;
24 | import static org.opengis.annotation.Obligation.*;
25 |
26 | /**
27 | * A SamplingPoint samples its target at a point(0-manifold);
28 | *
29 | * @version Implementation specification 1.0
30 | * @author Open Geospatial Consortium
31 | * @author Guilhem Legal (Geomatys)
32 | * @since GeoAPI 2.3
33 | */
34 | @UML(identifier="SamplingPoint", specification=OGC_07022)
35 | public interface SamplingPoint extends SamplingFeature {
36 |
37 | /**
38 | * Sampling position.
39 | */
40 | @UML(identifier="position", obligation=MANDATORY, specification=OGC_07022)
41 | Point getPosition();
42 |
43 | }
44 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/observation/sampling/SpatiallyExtensiveSamplingFeature.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2009-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.observation.sampling;
19 |
20 | import org.opengis.annotation.UML;
21 |
22 | import static org.opengis.annotation.Specification.*;
23 |
24 | /**
25 | * Generic interface for SamplingCurve, SamplingSurface and SamplingSolid
26 | *
27 | * @version Implementation specification 1.0
28 | * @author Open Geospatial Consortium
29 | * @author Guilhem Legal (Geomatys)
30 | * @since GeoAPI 2.3
31 | */
32 | @UML(identifier="SpatiallyExtensiveSamplingFeature", specification=OGC_07022)
33 | public interface SpatiallyExtensiveSamplingFeature extends SamplingFeature {
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/referencing/gazetteer/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2017-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | /**
20 | * Mapping between geographic identifiers and locations, either as descriptions or coordinates.
21 | * This package deals only with spatial referencing by geographic identifiers ,
22 | * as specified in the {@linkplain org.opengis.annotation.Specification#ISO_19112 ISO 19112} standard.
23 | * Spatial referencing by coordinates (ISO 19111) is the subject of another package,
24 | * namely {@link org.opengis.referencing.crs}.
25 | *
26 | * Geographic identifiers are location descriptors such as country name, postal code or grid indexes.
27 | * Gazetteers provide linking mechanism between referencing using geographic identifiers (this package)
28 | * and referencing using coordinates ({@link org.opengis.referencing.crs} package).
29 | *
30 | * @author Martin Desruisseaux (Geomatys)
31 | * @version 3.1
32 | * @since 3.1
33 | */
34 | package org.opengis.referencing.gazetteer;
35 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/style/GraphicFill.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2004-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.style;
19 |
20 | import org.opengis.annotation.XmlElement;
21 |
22 |
23 | /**
24 | * Stipple-fill repeated graphic.
25 | * Graphic and additional parameters for the {@code GraphicFill} may be provided in the
26 | * future to provide more control the exact style of filling.
27 | * We keep this class to reduce future code changes.
28 | *
29 | * @version Symbology Encoding Implementation Specification 1.1.0
30 | * @author Open Geospatial Consortium
31 | * @author Johann Sorel (Geomatys)
32 | */
33 | @XmlElement("GraphicFill")
34 | public interface GraphicFill extends Graphic {
35 | /**
36 | * Calls the visit method of a StyleVisitor
37 | *
38 | * @param visitor the style visitor
39 | */
40 | Object accept(StyleVisitor visitor, Object extraData);
41 | }
42 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/style/GraphicLegend.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2008-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.style;
19 |
20 | import org.opengis.annotation.XmlElement;
21 |
22 |
23 | /**
24 | * The LegendGraphic element allow an optional explicit graphic symbolizer
25 | * to do displayed in a legend for the rule.
26 | *
27 | * @version Symbology Encoding Implementation Specification 1.1.0
28 | * @author Open Geospatial Consortium
29 | * @author Johann Sorel (Geomatys)
30 | */
31 | @XmlElement("LegendGraphic")
32 | public interface GraphicLegend extends Graphic {
33 | /**
34 | * calls the visit method of a StyleVisitor
35 | *
36 | * @param visitor the style visitor
37 | */
38 | Object accept(StyleVisitor visitor, Object extraData);
39 | }
40 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/style/GraphicStroke.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2004-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.style;
19 |
20 | import org.opengis.annotation.XmlElement;
21 | import org.opengis.filter.Expression;
22 |
23 |
24 | /**
25 | * Repeated-linear-graphic stroke.
26 | *
27 | * @version Symbology Encoding Implementation Specification 1.1.0
28 | * @author Open Geospatial Consortium
29 | * @author Johann Sorel (Geomatys)
30 | */
31 | @XmlElement("GraphicStroke")
32 | public interface GraphicStroke extends Graphic{
33 | /**
34 | * How far away the first graphic will be drawn relative to the start of the rendering line.
35 | */
36 | @XmlElement("InitialGap")
37 | Expression getInitialGap();
38 |
39 | /**
40 | * Distance between two graphics.
41 | */
42 | @XmlElement("Gap")
43 | Expression getGap();
44 |
45 | /**
46 | * Calls the visit method of a StyleVisitor
47 | *
48 | * @param visitor the style visitor
49 | */
50 | Object accept(StyleVisitor visitor, Object extraData);
51 | }
52 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/style/GraphicalSymbol.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2008-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.style;
19 |
20 |
21 | /**
22 | * Common superclass for the two types of markers that can appear as children of a
23 | * {@link Graphic} object, namely {@link Mark} and {@link ExternalGraphic}.
24 | *
25 | * @version Implementation specification 1.0
26 | * @author Chris Dillard (SYS Technologies)
27 | * @since GeoAPI 2.0
28 | */
29 | public interface GraphicalSymbol {
30 | }
31 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/style/LabelPlacement.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2003-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.style;
19 |
20 | import org.opengis.annotation.XmlElement;
21 |
22 |
23 | /**
24 | * Position of a label relative to a point, line string or polygon.
25 | *
26 | * @version Symbology Encoding Implementation Specification 1.1.0
27 | * @author Open Geospatial Consortium
28 | * @author Johann Sorel (Geomatys)
29 | */
30 | @XmlElement("LabelPlacement")
31 | public interface LabelPlacement {
32 | /**
33 | * Calls the visit method of a StyleVisitor.
34 | *
35 | * Please note that LabelPalcement is not intended to be used as is; the StyleVisitor
36 | * visit method must traverse an instance of LinePlacement or PointPlacement.
37 | *
38 | * @param visitor the style visitor
39 | */
40 | Object accept(StyleVisitor visitor, Object extraData);
41 | }
42 |
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/style/doc-files/rules.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opengeospatial/geoapi/04262b65da0f14d219e6b7f2876c456a07cdb272/geoapi-pending/src/main/java/org/opengis/style/doc-files/rules.jpg
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/style/doc-files/symbolizers.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opengeospatial/geoapi/04262b65da0f14d219e6b7f2876c456a07cdb272/geoapi-pending/src/main/java/org/opengis/style/doc-files/symbolizers.jpg
--------------------------------------------------------------------------------
/geoapi-pending/src/main/java/org/opengis/style/portrayal/PortrayalService.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2008-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.style.portrayal;
19 |
20 | import org.opengis.annotation.UML;
21 |
22 | import static org.opengis.annotation.Specification.*;
23 |
24 | /**
25 | * A portrayal service is used to portray a feature instance or instances.
26 | * The portrayal service applies operations using the parameters defined
27 | * in the portrayal specification.
28 | *
29 | * Portrayal shall not be limited to visual rendering, but may include
30 | * audio,tactile and other media.
31 | *
32 | * @version ISO 19117 Portrayal
33 | * @author Open Geospatial Consortium
34 | * @author Johann Sorel (Geomatys)
35 | * @since GeoAPI 2.2
36 | */
37 | @UML(identifier="PF_PortrayalService", specification=ISO_19117)
38 | public interface PortrayalService {
39 |
40 | }
41 |
--------------------------------------------------------------------------------
/geoapi/src/main/java/org/opengis/filter/capability/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2021-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | /**
20 | * Metadata about the specific elements that a particular implementation supports.
21 | * A client application can inspect the filter capabilities metadata and be able
22 | * to determine which operators and types a filter expression processor supports.
23 | *
24 | *
Filter capabilities are divided into five categories:
25 | * {@linkplain IdCapabilities id capabilities},
26 | * {@linkplain ScalarCapabilities scalar capabilities},
27 | * {@linkplain SpatialCapabilities spatial capabilities},
28 | * {@linkplain TemporalCapabilities temporal capabilities}
29 | * and the ability to test for the existence or absence of a named property.
30 | *
31 | * @version 3.1
32 | * @since 3.1
33 | */
34 | package org.opengis.filter.capability;
35 |
--------------------------------------------------------------------------------
/geoapi/src/main/java/org/opengis/geoapi/internal/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | /**
20 | * Non-public helper methods for default implementation of some GeoAPI methods.
21 | *
22 | * @author Martin Desruisseaux (Geomatys)
23 | * @version 3.1
24 | * @since 3.1
25 | */
26 | package org.opengis.geoapi.internal;
27 |
--------------------------------------------------------------------------------
/geoapi/src/main/java/org/opengis/geometry/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2011-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | /**
20 | * Core interfaces needed to investigate coordinate-defined geometry.
21 | * Those interfaces inherit an optional association to a
22 | * {@linkplain org.opengis.referencing.crs.CoordinateReferenceSystem coordinate reference system}.
23 | * All {@linkplain org.opengis.geometry.DirectPosition direct positions} exposed through the interfaces
24 | * shall be in the coordinate reference system of the geometric object accessed.
25 | *
26 | * @author Martin Desruisseaux (IRD, Geomatys)
27 | * @author Axel Francois (LSIS/Geomatys)
28 | * @version 3.1
29 | * @since 1.0
30 | */
31 | package org.opengis.geometry;
32 |
--------------------------------------------------------------------------------
/geoapi/src/main/java/org/opengis/metadata/content/ContentInformation.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2004-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.metadata.content;
19 |
20 | import org.opengis.annotation.UML;
21 | import org.opengis.annotation.Classifier;
22 | import org.opengis.annotation.Stereotype;
23 |
24 | import static org.opengis.annotation.Specification.*;
25 |
26 |
27 | /**
28 | * Description of the content of a resource.
29 | *
30 | * @author Martin Desruisseaux (IRD)
31 | * @version 3.1
32 | * @since 2.0
33 | */
34 | @Classifier(Stereotype.ABSTRACT)
35 | @UML(identifier="MD_ContentInformation", specification=ISO_19115)
36 | public interface ContentInformation {
37 | }
38 |
--------------------------------------------------------------------------------
/geoapi/src/main/java/org/opengis/metadata/extent/BoundingPolygon.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2003-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.metadata.extent;
19 |
20 | import java.util.Collection;
21 | import org.opengis.geometry.Geometry;
22 | import org.opengis.annotation.UML;
23 |
24 | import static org.opengis.annotation.Obligation.*;
25 | import static org.opengis.annotation.Specification.*;
26 |
27 |
28 | /**
29 | * Enclosing geometric object which locates the resource.
30 | * If a polygon is used is should be closed (last point replicates first point).
31 | *
32 | * @author Martin Desruisseaux (IRD)
33 | * @version 3.0
34 | * @since 1.0
35 | */
36 | @UML(identifier="EX_BoundingPolygon", specification=ISO_19115)
37 | public interface BoundingPolygon extends GeographicExtent {
38 | /**
39 | * The sets of points defining the bounding polygon or any other geometry (point, line).
40 | *
41 | * @return the sets of points defining the resource boundary.
42 | */
43 | @UML(identifier="polygon", obligation=MANDATORY, specification=ISO_19115)
44 | Collection extends Geometry> getPolygons();
45 | }
46 |
--------------------------------------------------------------------------------
/geoapi/src/main/java/org/opengis/metadata/extent/GeographicDescription.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2004-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.metadata.extent;
19 |
20 | import org.opengis.metadata.Identifier;
21 | import org.opengis.annotation.UML;
22 |
23 | import static org.opengis.annotation.Obligation.*;
24 | import static org.opengis.annotation.Specification.*;
25 |
26 |
27 | /**
28 | * Description of the geographic area using identifiers.
29 | * Geographic identifiers are described in ISO 19112.
30 | *
31 | * @author Martin Desruisseaux (IRD)
32 | * @version 3.0
33 | * @since 1.0
34 | */
35 | @UML(identifier="EX_GeographicDescription", specification=ISO_19115)
36 | public interface GeographicDescription extends GeographicExtent {
37 | /**
38 | * The identifier used to represent a geographic area.
39 | *
40 | * @return the identifier used to represent a geographic area.
41 | */
42 | @UML(identifier="geographicIdentifier", obligation=MANDATORY, specification=ISO_19115)
43 | Identifier getGeographicIdentifier();
44 | }
45 |
--------------------------------------------------------------------------------
/geoapi/src/main/java/org/opengis/metadata/extent/TemporalExtent.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2004-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.metadata.extent;
19 |
20 | import org.opengis.annotation.UML;
21 | import org.opengis.temporal.TemporalPrimitive;
22 |
23 | import static org.opengis.annotation.Obligation.*;
24 | import static org.opengis.annotation.Specification.*;
25 |
26 |
27 | /**
28 | * Time period covered by the content of the resource.
29 | *
30 | * @author Martin Desruisseaux (IRD)
31 | * @version 3.1
32 | * @since 1.0
33 | */
34 | @UML(identifier="EX_TemporalExtent", specification=ISO_19115)
35 | public interface TemporalExtent {
36 | /**
37 | * Period for the content of the resource.
38 | * Should be an instance of {@link org.opengis.temporal.Period}.
39 | *
40 | * @return the period for the content.
41 | */
42 | @UML(identifier="extent", obligation=MANDATORY, specification=ISO_19115)
43 | TemporalPrimitive getExtent();
44 | }
45 |
--------------------------------------------------------------------------------
/geoapi/src/main/java/org/opengis/metadata/identification/Parameter.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | SV_Parameter replacement
5 |
6 |
22 |
23 |
24 | SV_Parameter replacement
25 | The SV_Parameter
class defined in ISO 19115 is omitted for unifying parameter handling
26 | with the org.opengis.parameter
package.
27 | The following table maps SV_Parameter
properties to their replacements.
28 |
29 |
30 | Mapping from SV_Parameter
properties to ParameterDescriptor
properties
31 | SV_Parameter
ParameterDescriptor
32 | name
getName()
33 | name.attributeType
getValueClass()
34 | direction
getDirection()
35 | description
getDescription()
36 | optionality
getMinimumOccurs()
> 0
37 | repeatability
getMaximumOccurs()
> 1
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/geoapi/src/main/java/org/opengis/metadata/quality/AggregationDerivation.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2022-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.metadata.quality;
19 |
20 | import org.opengis.annotation.UML;
21 |
22 | import static org.opengis.annotation.Specification.*;
23 |
24 |
25 | /**
26 | * Aggregation or derivation evaluation method.
27 | * This method describes additional results produced by aggregating or deriving existing results
28 | * without carrying out a new data quality evaluation. Aggregation combines quality results from
29 | * data quality evaluations based on different data quality elements or different data quality scopes.
30 | *
31 | * @author Alexis Gaillard (Geomatys)
32 | * @author Martin Desruisseaux (Geomatys)
33 | * @version 3.1
34 | * @since 3.1
35 | */
36 | @UML(identifier="DQ_AggregationDerivation", specification=ISO_19157)
37 | public interface AggregationDerivation extends EvaluationMethod {
38 | }
39 |
--------------------------------------------------------------------------------
/geoapi/src/main/java/org/opengis/metadata/quality/Completeness.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2004-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.metadata.quality;
19 |
20 | import org.opengis.annotation.UML;
21 | import org.opengis.annotation.Classifier;
22 | import org.opengis.annotation.Stereotype;
23 |
24 | import static org.opengis.annotation.Specification.*;
25 |
26 |
27 | /**
28 | * Presence and absence of features, their attributes and their relationships.
29 | * Instances should be one of the following subtypes:
30 | *
31 | * {@link CompletenessOmission}: excess data present in a data set;
32 | * {@link CompletenessCommission}: data absent from a data set.
33 | *
34 | *
35 | * @author Martin Desruisseaux (IRD)
36 | * @author Alexis Gaillard (Geomatys)
37 | * @version 3.1
38 | * @since 2.0
39 | */
40 | @Classifier(Stereotype.ABSTRACT)
41 | @UML(identifier="DQ_Completeness", specification=ISO_19157)
42 | public interface Completeness extends Element {
43 | }
44 |
--------------------------------------------------------------------------------
/geoapi/src/main/java/org/opengis/metadata/quality/Confidence.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2022-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.metadata.quality;
19 |
20 | import org.opengis.annotation.UML;
21 |
22 | import static org.opengis.annotation.Specification.*;
23 |
24 |
25 | /**
26 | * Trustworthiness of a data quality result.
27 | * Quantitative figures for confidence can be obtained by statistical parameters
28 | * such as standard deviation or a confidence interval on a given confidence level.
29 | *
30 | * @author Alexis Gaillard (Geomatys)
31 | * @author Martin Desruisseaux (Geomatys)
32 | * @version 3.1
33 | * @since 3.1
34 | */
35 | @UML(identifier="DQ_Confidence", specification=ISO_19157)
36 | public interface Confidence extends Metaquality {
37 | }
38 |
--------------------------------------------------------------------------------
/geoapi/src/main/java/org/opengis/metadata/quality/DataEvaluation.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2022-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.metadata.quality;
19 |
20 | import org.opengis.annotation.Classifier;
21 | import org.opengis.annotation.Stereotype;
22 | import org.opengis.annotation.UML;
23 |
24 | import static org.opengis.annotation.Specification.*;
25 |
26 |
27 | /**
28 | * Data evaluation method.
29 | * Data quality evaluation methods can be divided into two main classes: direct and indirect.
30 | * Direct evaluation methods determine data quality through the comparison of the data with reference information.
31 | * Indirect evaluation methods infer or estimate data quality using information on the data such as lineage.
32 | * Direct evaluation methods should be used in preference to indirect evaluations.
33 | *
34 | * @author Alexis Gaillard (Geomatys)
35 | * @author Martin Desruisseaux (Geomatys)
36 | * @version 3.1
37 | * @since 3.1
38 | */
39 | @Classifier(Stereotype.ABSTRACT)
40 | @UML(identifier="DQ_DataEvaluation", specification=ISO_19157)
41 | public interface DataEvaluation extends EvaluationMethod {
42 | }
43 |
--------------------------------------------------------------------------------
/geoapi/src/main/java/org/opengis/metadata/quality/FullInspection.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2022-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.metadata.quality;
19 |
20 | import org.opengis.annotation.UML;
21 |
22 | import static org.opengis.annotation.Specification.*;
23 |
24 |
25 | /**
26 | * Test of every item in the population specified by the data quality scope.
27 | * Full inspection is most appropriate for small populations
28 | * or for tests that can be accomplished by automated means.
29 | *
30 | * @author Alexis Gaillard (Geomatys)
31 | * @author Martin Desruisseaux (Geomatys)
32 | * @version 3.1
33 | *
34 | * @see SampleBasedInspection
35 | * @see IndirectEvaluation
36 | *
37 | * @since 3.1
38 | */
39 | @UML(identifier="DQ_FullInspection", specification=ISO_19157)
40 | public interface FullInspection extends DataEvaluation {
41 | }
42 |
--------------------------------------------------------------------------------
/geoapi/src/main/java/org/opengis/metadata/quality/Homogeneity.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2022-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.metadata.quality;
19 |
20 | import org.opengis.annotation.UML;
21 |
22 | import static org.opengis.annotation.Specification.*;
23 |
24 |
25 | /**
26 | * Expected or tested uniformity of the results obtained for a data quality evaluation.
27 | * Homogeneity consists in comparing the evaluation results of several segments of a global data set.
28 | * This comparison can be expressed using root mean square errors for example.
29 | * These tests are often conducted when data has been captured by different operators,
30 | * depending on the acquisition zone or the acquisition date.
31 | *
32 | * @author Alexis Gaillard (Geomatys)
33 | * @author Martin Desruisseaux (Geomatys)
34 | * @version 3.1
35 | * @since 3.1
36 | */
37 | @UML(identifier="DQ_Homogeneity", specification=ISO_19157)
38 | public interface Homogeneity extends Metaquality {
39 | }
40 |
--------------------------------------------------------------------------------
/geoapi/src/main/java/org/opengis/metadata/quality/NonQuantitativeAttributeAccuracy.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2007-2024 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.metadata.quality;
19 |
20 | import org.opengis.annotation.UML;
21 |
22 | import static org.opengis.annotation.Specification.*;
23 |
24 |
25 | /**
26 | * Accuracy of non-quantitative attributes.
27 | *
28 | * @author Martin Desruisseaux (IRD)
29 | * @author Cory Horner (Refractions Research)
30 | * @author Alexis Gaillard (Geomatys)
31 | * @version 3.1
32 | * @since 2.1
33 | *
34 | * @deprecated Renamed {@link NonQuantitativeAttributeCorrectness}.
35 | */
36 | @Deprecated(since="3.1")
37 | @UML(identifier="DQ_NonQuantitativeAttributeAccuracy", specification=ISO_19115, version=2003)
38 | public interface NonQuantitativeAttributeAccuracy extends NonQuantitativeAttributeCorrectness {
39 | }
40 |
--------------------------------------------------------------------------------
/geoapi/src/main/java/org/opengis/metadata/quality/Representativity.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2022-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.metadata.quality;
19 |
20 | import org.opengis.annotation.UML;
21 |
22 | import static org.opengis.annotation.Specification.*;
23 |
24 |
25 | /**
26 | * Degree to which the sample used has produced a result which is representation of the data.
27 | * A statistical method based on sampling could be considered as reliable as a global method
28 | * when all the geographic zones and concerned time periods are covered and the population
29 | * is sufficiently large. It is not only the size of the sample which is crucial but also
30 | * how well it represents the actual state of the data.
31 | *
32 | * @author Alexis Gaillard (Geomatys)
33 | * @author Martin Desruisseaux (Geomatys)
34 | * @version 3.1
35 | * @since 3.1
36 | */
37 | @UML(identifier="DQ_Representativity", specification=ISO_19157)
38 | public interface Representativity extends Metaquality {
39 | }
40 |
--------------------------------------------------------------------------------
/geoapi/src/main/java/org/opengis/metadata/quality/SourceReference.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2022-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.metadata.quality;
19 |
20 | import org.opengis.annotation.UML;
21 | import org.opengis.metadata.citation.Citation;
22 |
23 | import static org.opengis.annotation.Obligation.*;
24 | import static org.opengis.annotation.Specification.*;
25 |
26 |
27 | /**
28 | * Reference to the source of the data quality measure.
29 | *
30 | * @author Alexis Gaillard (Geomatys)
31 | * @author Martin Desruisseaux (Geomatys)
32 | * @version 3.1
33 | * @since 3.1
34 | */
35 | @UML(identifier="DQM_SourceReference", specification=ISO_19157)
36 | public interface SourceReference {
37 | /**
38 | * References to the source.
39 | *
40 | * @return reference to the source.
41 | */
42 | @UML(identifier="citation", obligation=MANDATORY, specification=ISO_19157)
43 | Citation getCitation();
44 | }
45 |
--------------------------------------------------------------------------------
/geoapi/src/main/java/org/opengis/metadata/quality/TemporalAccuracy.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2004-2024 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.metadata.quality;
19 |
20 | import org.opengis.annotation.Classifier;
21 | import org.opengis.annotation.Stereotype;
22 | import org.opengis.annotation.UML;
23 |
24 | import static org.opengis.annotation.Specification.*;
25 |
26 |
27 | /**
28 | * Accuracy of the temporal attributes and temporal relationships of features.
29 | *
30 | * @author Martin Desruisseaux (IRD)
31 | * @author Alexis Gaillard (Geomatys)
32 | * @version 3.1
33 | * @since 2.0
34 | *
35 | * @deprecated Renamed {@link TemporalQuality}.
36 | */
37 | @Deprecated(since="3.1")
38 | @Classifier(Stereotype.ABSTRACT)
39 | @UML(identifier="DQ_TemporalAccuracy", specification=ISO_19115, version=2003)
40 | public interface TemporalAccuracy extends TemporalQuality {
41 | }
42 |
--------------------------------------------------------------------------------
/geoapi/src/main/java/org/opengis/metadata/quality/TemporalValidity.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2004-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.metadata.quality;
19 |
20 | import org.opengis.annotation.UML;
21 |
22 | import static org.opengis.annotation.Specification.*;
23 |
24 |
25 | /**
26 | * Validity of data specified by the scope with respect to time.
27 | *
28 | * Standardized values
29 | * In order to achieve well defined and comparable quality information, it is recommended to
30 | * report data quality using {@linkplain Measure quality measures} listed in ISO 19157 annex.
31 | * The temporal validity may be treated with the same data quality measures as for {@link DomainConsistency}.
32 | *
33 | * @author Martin Desruisseaux (IRD)
34 | * @author Alexis Gaillard (Geomatys)
35 | * @version 3.1
36 | * @since 2.0
37 | */
38 | @UML(identifier="DQ_TemporalValidity", specification=ISO_19157)
39 | public interface TemporalValidity extends TemporalQuality, TemporalAccuracy {
40 | }
41 |
--------------------------------------------------------------------------------
/geoapi/src/main/java/org/opengis/metadata/quality/Usability.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2009-2024 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.metadata.quality;
19 |
20 | import org.opengis.annotation.UML;
21 |
22 | import static org.opengis.annotation.Specification.*;
23 |
24 |
25 | /**
26 | * Degree of adherence of a dataset to a specific set of user requirements.
27 | *
28 | * @author Cédric Briançon (Geomatys)
29 | * @version 3.1
30 | * @since 2.3
31 | *
32 | * @deprecated Removed from latest ISO 19157 standard.
33 | */
34 | @Deprecated(since="3.1")
35 | @UML(identifier="QE_Usability", specification=ISO_19115_2, version=2009)
36 | public interface Usability extends Element {
37 | }
38 |
--------------------------------------------------------------------------------
/geoapi/src/main/python/docs/geometry/overview.md:
--------------------------------------------------------------------------------
1 | # Geometry Subpackage (ISO 19107)
2 | ::: opengis.geometry
3 |
--------------------------------------------------------------------------------
/geoapi/src/main/python/docs/geometry/primitive.md:
--------------------------------------------------------------------------------
1 | # `primitive` module
2 | ::: opengis.geometry.primitive
--------------------------------------------------------------------------------
/geoapi/src/main/python/docs/index.md:
--------------------------------------------------------------------------------
1 | # GeoAPI for Python
2 |
3 | ***WARNING:*** **This specification is not final and is subject to change.**
4 |
5 | Experimental set of Python interfaces for GeoAPI.
6 | This package provides only code lists and abstract classes; implementations can be provided by separated projects.
7 | Implementations in the Java language can also be used in Python using the ``geoapi-java-python`` module.
8 |
9 | ## Requirements
10 | This package requires Python 3.10 or later
--------------------------------------------------------------------------------
/geoapi/src/main/python/docs/metadata/acquisition.md:
--------------------------------------------------------------------------------
1 | # `acquisition` module
2 | ::: opengis.metadata.acquisition
--------------------------------------------------------------------------------
/geoapi/src/main/python/docs/metadata/base.md:
--------------------------------------------------------------------------------
1 | # `base` module
2 | ::: opengis.metadata.base
--------------------------------------------------------------------------------
/geoapi/src/main/python/docs/metadata/citation.md:
--------------------------------------------------------------------------------
1 | # `citation` module
2 | ::: opengis.metadata.citation
--------------------------------------------------------------------------------
/geoapi/src/main/python/docs/metadata/constraints.md:
--------------------------------------------------------------------------------
1 | # `constraints` module
2 | ::: opengis.metadata.constraints
--------------------------------------------------------------------------------
/geoapi/src/main/python/docs/metadata/content.md:
--------------------------------------------------------------------------------
1 | # `content` module
2 | ::: opengis.metadata.content
--------------------------------------------------------------------------------
/geoapi/src/main/python/docs/metadata/distribution.md:
--------------------------------------------------------------------------------
1 | # `distribution` module
2 | ::: opengis.metadata.distribution
--------------------------------------------------------------------------------
/geoapi/src/main/python/docs/metadata/extension.md:
--------------------------------------------------------------------------------
1 | # `extension` module
2 | ::: opengis.metadata.extension
--------------------------------------------------------------------------------
/geoapi/src/main/python/docs/metadata/extent.md:
--------------------------------------------------------------------------------
1 | # `extent` module
2 | ::: opengis.metadata.extent
--------------------------------------------------------------------------------
/geoapi/src/main/python/docs/metadata/identification.md:
--------------------------------------------------------------------------------
1 | # `identification` module
2 | ::: opengis.metadata.identification
--------------------------------------------------------------------------------
/geoapi/src/main/python/docs/metadata/lineage.md:
--------------------------------------------------------------------------------
1 | # `lineage` module
2 | ::: opengis.metadata.lineage
--------------------------------------------------------------------------------
/geoapi/src/main/python/docs/metadata/maintenance.md:
--------------------------------------------------------------------------------
1 | # `maintenance` module
2 | ::: opengis.metadata.maintenance
--------------------------------------------------------------------------------
/geoapi/src/main/python/docs/metadata/naming.md:
--------------------------------------------------------------------------------
1 | # `naming` module
2 | ::: opengis.metadata.naming
--------------------------------------------------------------------------------
/geoapi/src/main/python/docs/metadata/overview.md:
--------------------------------------------------------------------------------
1 | # Naming (ISO 19103) and Metadata Subpackage (ISO 19115-1:2014, ISO 19115-2:2018)
2 | ::: opengis.metadata
--------------------------------------------------------------------------------
/geoapi/src/main/python/docs/metadata/quality.md:
--------------------------------------------------------------------------------
1 | # `quality` module
2 | ::: opengis.metadata.quality
--------------------------------------------------------------------------------
/geoapi/src/main/python/docs/metadata/representation.md:
--------------------------------------------------------------------------------
1 | # `representation` module
2 | ::: opengis.metadata.representation
--------------------------------------------------------------------------------
/geoapi/src/main/python/docs/metadata/service.md:
--------------------------------------------------------------------------------
1 | # `service` module
2 | ::: opengis.metadata.service
--------------------------------------------------------------------------------
/geoapi/src/main/python/docs/referencing/common.md:
--------------------------------------------------------------------------------
1 | # `common`module
2 | :::opengis.referencing.common
--------------------------------------------------------------------------------
/geoapi/src/main/python/docs/referencing/coordinate.md:
--------------------------------------------------------------------------------
1 | # `coordinate` module
2 | :::opengis.referencing.coordinate
--------------------------------------------------------------------------------
/geoapi/src/main/python/docs/referencing/crs.md:
--------------------------------------------------------------------------------
1 | # `crs` module
2 | :::opengis.referencing.crs
--------------------------------------------------------------------------------
/geoapi/src/main/python/docs/referencing/cs.md:
--------------------------------------------------------------------------------
1 | # `cs` module
2 | :::opengis.referencing.cs
--------------------------------------------------------------------------------
/geoapi/src/main/python/docs/referencing/datum.md:
--------------------------------------------------------------------------------
1 | # `datum` module
2 | :::opengis.referencing.datum
--------------------------------------------------------------------------------
/geoapi/src/main/python/docs/referencing/operation.md:
--------------------------------------------------------------------------------
1 | # `operation` module
2 | :::opengis.referencing.operation
--------------------------------------------------------------------------------
/geoapi/src/main/python/docs/referencing/overview.md:
--------------------------------------------------------------------------------
1 | # Referencing Subpackage (ISO 19111)
2 | ::: opengis.referencing
3 |
--------------------------------------------------------------------------------
/geoapi/src/main/python/docs/util/measure.md:
--------------------------------------------------------------------------------
1 | # `measure` module
2 | ::: opengis.util.measure
--------------------------------------------------------------------------------
/geoapi/src/main/python/docs/util/overview.md:
--------------------------------------------------------------------------------
1 | # Referencing Subpackage (ISO 19103:2015)
2 | ::: opengis.util
3 |
--------------------------------------------------------------------------------
/geoapi/src/main/python/mkdocs.yml:
--------------------------------------------------------------------------------
1 | site_name: GeoAPI for Python
2 | site_url: https://www.geoapi.org/python/
3 |
4 | theme:
5 | name: material
6 |
7 | plugins:
8 | - search
9 | - mkdocstrings
10 |
11 | nav:
12 | - GeoAPI Docs: index.md
13 | - Geometry (ISO 19107):
14 | - Overview: geometry/overview.md
15 | - primitive: geometry/primitive.md
16 | - Naming (ISO 19103) and Metadata (ISO 19115):
17 | - Overview: metadata/overview.md
18 | - acquisition: metadata/acquisition.md
19 | - base: metadata/base.md
20 | - citation: metadata/citation.md
21 | - constraints: metadata/constraints.md
22 | - content: metadata/content.md
23 | - distribution: metadata/distribution.md
24 | - extension: metadata/extension.md
25 | - extent: metadata/extent.md
26 | - identification: metadata/identification.md
27 | - lineage: metadata/lineage.md
28 | - maintenance: metadata/maintenance.md
29 | - naming: metadata/naming.md
30 | - quality: metadata/quality.md
31 | - representation: metadata/representation.md
32 | - service: metadata/service.md
33 | - Referencing (ISO 19111):
34 | - Overview: referencing/overview.md
35 | - common: referencing/common.md
36 | - coordinate: referencing/coordinate.md
37 | - crs: referencing/crs.md
38 | - cs: referencing/cs.md
39 | - datum: referencing/datum.md
40 | - operation: referencing/operation.md
41 | - Util:
42 | - Overview: util/overview.md
43 | - measure (ISO 19103): util/measure.md
--------------------------------------------------------------------------------
/geoapi/src/main/python/opengis/__init__.py:
--------------------------------------------------------------------------------
1 | # ===-----------------------------------------------------------------------===
2 | # GeoAPI - Python interfaces (abstractions) for OGC/ISO standards
3 | # Copyright © 2013-2024 Open Geospatial Consortium, Inc.
4 | # http: //www.geoapi.org
5 | #
6 | # Licensed under the Apache License, Version 2.0 (the "License");
7 | # you may not use this file except in compliance with the License.
8 | # You may obtain a copy of the License at
9 | #
10 | # http: //www.apache.org/licenses/LICENSE-2.0
11 | #
12 | # Unless required by applicable law or agreed to in writing, software
13 | # distributed under the License is distributed on an "AS IS" BASIS,
14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | # See the License for the specific language governing permissions and
16 | # limitations under the License.
17 | # ===-----------------------------------------------------------------------===
18 | """This is the GeoAPI (`opengis`) package.
19 |
20 | This package implements the Open Geospatial Consortium, Inc.'s GeoAPI (geoapi)
21 | specification in Python and contains geographic structures derived from various
22 | OGC/ISO international standards.
23 | """
24 |
25 | __package_name__ = "opengis"
26 | __version__ = "4.0a1"
27 | __author__ = "Martin Desruisseaux (Geomatys), David Meaux (Geomatys)"
28 | __license_type__ = "© 2013-2024 Open Geospatial Consortium, Inc.\
29 | Licensed under the Apache License, Version 2.0."
30 |
--------------------------------------------------------------------------------
/geoapi/src/main/python/opengis/geometry/__init__.py:
--------------------------------------------------------------------------------
1 | # ===-----------------------------------------------------------------------===
2 | # GeoAPI - Python interfaces (abstractions) for OGC/ISO standards
3 | # Copyright © 2013-2024 Open Geospatial Consortium, Inc.
4 | # http: //www.geoapi.org
5 | #
6 | # Licensed under the Apache License, Version 2.0 (the "License");
7 | # you may not use this file except in compliance with the License.
8 | # You may obtain a copy of the License at
9 | #
10 | # http: //www.apache.org/licenses/LICENSE-2.0
11 | #
12 | # Unless required by applicable law or agreed to in writing, software
13 | # distributed under the License is distributed on an "AS IS" BASIS,
14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | # See the License for the specific language governing permissions and
16 | # limitations under the License.
17 | # ===-----------------------------------------------------------------------===
18 | """This is the `geometry` subpackage.
19 |
20 | This subpackage contains geometry data structures derived from the
21 | ISO 19107 international standard.
22 | """
23 |
24 | __author__ = "OGC Topic 1 (for abstract model and documentation), " +\
25 | "Martin Desruisseaux (Geomatys), David Meaux (Geomatys)"
26 |
--------------------------------------------------------------------------------
/geoapi/src/main/python/opengis/metadata/__init__.py:
--------------------------------------------------------------------------------
1 | # ===-----------------------------------------------------------------------===
2 | # GeoAPI - Python interfaces (abstractions) for OGC/ISO standards
3 | # Copyright © 2013-2024 Open Geospatial Consortium, Inc.
4 | # http: //www.geoapi.org
5 | #
6 | # Licensed under the Apache License, Version 2.0 (the "License");
7 | # you may not use this file except in compliance with the License.
8 | # You may obtain a copy of the License at
9 | #
10 | # http: //www.apache.org/licenses/LICENSE-2.0
11 | #
12 | # Unless required by applicable law or agreed to in writing, software
13 | # distributed under the License is distributed on an "AS IS" BASIS,
14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | # See the License for the specific language governing permissions and
16 | # limitations under the License.
17 | # ===-----------------------------------------------------------------------===
18 | """This is the `metadata` subpackage.
19 |
20 | This subpackage contains geographic naming structures derived from the
21 | ISO 19103 international standard and metadata structures derived from the
22 | ISO 19115-1:2014, including addendums A1(2018) and A2(2020),
23 | and ISO 19115-2:2019, including addendum A1(2022) international standards.
24 | """
25 |
26 | __author__ = "OGC Topic 11 (for abstract model and documentation), " +\
27 | "Martin Desruisseaux (Geomatys), David Meaux (Geomatys)"
28 |
--------------------------------------------------------------------------------
/geoapi/src/main/python/opengis/py.typed:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opengeospatial/geoapi/04262b65da0f14d219e6b7f2876c456a07cdb272/geoapi/src/main/python/opengis/py.typed
--------------------------------------------------------------------------------
/geoapi/src/main/python/opengis/referencing/__init__.py:
--------------------------------------------------------------------------------
1 | # ===-----------------------------------------------------------------------===
2 | # GeoAPI - Python interfaces (abstractions) for OGC/ISO standards
3 | # Copyright © 2013-2024 Open Geospatial Consortium, Inc.
4 | # http: //www.geoapi.org
5 | #
6 | # Licensed under the Apache License, Version 2.0 (the "License");
7 | # you may not use this file except in compliance with the License.
8 | # You may obtain a copy of the License at
9 | #
10 | # http: //www.apache.org/licenses/LICENSE-2.0
11 | #
12 | # Unless required by applicable law or agreed to in writing, software
13 | # distributed under the License is distributed on an "AS IS" BASIS,
14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | # See the License for the specific language governing permissions and
16 | # limitations under the License.
17 | # ===-----------------------------------------------------------------------===
18 | """This is the `referencing` subpackage.
19 |
20 | This subpackage contains spatial referencing data structures derived from
21 | the ISO 19111 international standard.
22 | """
23 |
24 | __author__ = "OGC Topic 2 (for abstract model and documentation), " +\
25 | "Martin Desruisseaux (Geomatys), David Meaux (Geomatys)"
26 |
--------------------------------------------------------------------------------
/geoapi/src/main/python/opengis/util/__init__.py:
--------------------------------------------------------------------------------
1 | # ===-----------------------------------------------------------------------===
2 | # GeoAPI - Python interfaces (abstractions) for OGC/ISO standards
3 | # Copyright © 2013-2024 Open Geospatial Consortium, Inc.
4 | # http: //www.geoapi.org
5 | #
6 | # Licensed under the Apache License, Version 2.0 (the "License");
7 | # you may not use this file except in compliance with the License.
8 | # You may obtain a copy of the License at
9 | #
10 | # http: //www.apache.org/licenses/LICENSE-2.0
11 | #
12 | # Unless required by applicable law or agreed to in writing, software
13 | # distributed under the License is distributed on an "AS IS" BASIS,
14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | # See the License for the specific language governing permissions and
16 | # limitations under the License.
17 | # ===-----------------------------------------------------------------------===
18 | """This is the `util` subpackage.
19 |
20 | This subpackage contains types defined in the ISO 19103:2015 specification
21 | for which no equivalence is already present in the Python standard library.
22 | """
23 |
24 | __author__ = "OGC Topic 20 (for abstract model and documentation), " +\
25 | "David Meaux (Geomatys)"
26 |
--------------------------------------------------------------------------------
/geoapi/src/main/python/requirements.txt:
--------------------------------------------------------------------------------
1 | mkdocs
2 | mkdocstrings-python
3 | mkdocs-material
4 |
--------------------------------------------------------------------------------
/geoapi/src/main/resources/org/opengis/metadata/2003/charset-codes.properties:
--------------------------------------------------------------------------------
1 | # From ISO 19115:2003 to java.nio.charset
2 | ucs2=UCS-2
3 | ucs4=UCS-4
4 | utf7=UTF-7
5 | utf8=UTF-8
6 | utf16=UTF-16
7 | 8859part1=ISO-8859-1
8 | 8859part2=ISO-8859-2
9 | 8859part3=ISO-8859-3
10 | 8859part4=ISO-8859-4
11 | 8859part5=ISO-8859-5
12 | 8859part6=ISO-8859-6
13 | 8859part7=ISO-8859-7
14 | 8859part8=ISO-8859-8
15 | 8859part9=ISO-8859-9
16 | 8859part10=ISO-8859-10
17 | 8859part11=ISO-8859-11
18 | 8859part12=ISO-8859-12
19 | 8859part13=ISO-8859-13
20 | 8859part14=ISO-8859-14
21 | 8859part15=ISO-8859-15
22 | 8859part16=ISO-8859-16
23 | jis=JIS_X0201
24 | shiftJIS=Shift_JIS
25 | eucJP=EUC-JP
26 | usAscii=US-ASCII
27 | ebcdic=EBCDIC
28 | eucKR=EUC-KR
29 | big5=Big5
30 | GB2312=GB2312
31 |
--------------------------------------------------------------------------------
/geoapi/src/main/resources/org/opengis/metadata/CodeLists_en.properties:
--------------------------------------------------------------------------------
1 | # Inherit all resources from CodeLists.properties
2 |
--------------------------------------------------------------------------------
/geoapi/src/main/resources/org/opengis/metadata/Descriptions_en.properties:
--------------------------------------------------------------------------------
1 | # Inherit all resources from Descriptions.properties
2 |
--------------------------------------------------------------------------------
/geoapi/src/main/resources/org/opengis/metadata/Descriptions_en_US.properties:
--------------------------------------------------------------------------------
1 | # Inherit resources from Descriptions.properties
2 | MD_Band.detectedPolarisation=Polarization of the radiation detected.
3 | MD_Band.transmittedPolarisation=Polarization of the radiation transmitted.
4 |
--------------------------------------------------------------------------------
/geoapi/src/pending/java/org/opengis/geometry/Geometry.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2003-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.geometry;
19 |
20 |
21 | /**
22 | * Temporary placeholder for an interface defined in the geoapi-pending
module.
23 | */
24 | public interface Geometry {
25 | }
26 |
--------------------------------------------------------------------------------
/geoapi/src/pending/java/org/opengis/geometry/primitive/Point.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2003-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.geometry.primitive;
19 |
20 | import org.opengis.geometry.Geometry;
21 |
22 |
23 | /**
24 | * Temporary placeholder for an interface defined in the geoapi-pending
module.
25 | */
26 | public interface Point extends Geometry {
27 | }
28 |
--------------------------------------------------------------------------------
/geoapi/src/pending/java/org/opengis/geometry/primitive/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2021-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | /**
20 | * Set of geometric objects that are not decomposed further into other primitives.
21 | * The content of this package will be developed in a future GeoAPI release.
22 | *
23 | * @version 3.1
24 | * @since 1.0
25 | */
26 | package org.opengis.geometry.primitive;
27 |
--------------------------------------------------------------------------------
/geoapi/src/shared/README.md:
--------------------------------------------------------------------------------
1 | Files in this directory are shared by two modules:
2 |
3 | * geoapi/test
4 | * geoapi-conformance/main
5 |
6 | Conceptually those files are part of `geoapi-conformance`.
7 | But they are needed for testing the `geoapi` module, which
8 | cannot be done without introducing a circular dependency.
9 | This `shared` directory make easier to provide a copy of
10 | those files to `geoapi/test`
11 |
--------------------------------------------------------------------------------
/geoapi/src/shared/java/org/opengis/geoapi/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2018-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | /**
20 | * Information about GeoAPI content, made available for test suites.
21 | * The information are either hard-coded (e.g. list of all interfaces)
22 | * or read from OGC XML schema.
23 | *
24 | * @author Martin Desruisseaux (Geomatys)
25 | * @version 3.1
26 | * @since 3.1
27 | */
28 | package org.opengis.geoapi;
29 |
--------------------------------------------------------------------------------
/geoapi/src/shared/java/org/opengis/geoapi/schema/SchemaException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2004-2024 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.geoapi.schema;
19 |
20 |
21 | /**
22 | * Thrown when a {@link SchemaInformation} failed to load a XSD file because it does not comply
23 | * with expected OGC/ISO conventions, or when a UML annotation failed a compliance check.
24 | *
25 | * @author Martin Desruisseaux (Geomatys)
26 | * @since 3.1
27 | * @version 3.1
28 | */
29 | public class SchemaException extends Exception {
30 | /**
31 | * Serial number for inter-operability with different versions.
32 | */
33 | private static final long serialVersionUID = -4421595503088915919L;
34 |
35 | /**
36 | * Creates an exception with the specified details message.
37 | *
38 | * @param message the detail message.
39 | */
40 | public SchemaException(final String message) {
41 | super(message);
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/geoapi/src/shared/java/org/opengis/geoapi/schema/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2018-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | /**
20 | * Tools for comparing Java API against XML schema.
21 | * This is used for verifying if GeoAPI itself follows OGC/ISO standards as expected,
22 | * and for documenting the departures.
23 | *
24 | * @author Martin Desruisseaux (Geomatys)
25 | * @version 3.1
26 | * @since 3.1
27 | */
28 | package org.opengis.geoapi.schema;
29 |
--------------------------------------------------------------------------------
/geoapi/src/test/java/org/opengis/filter/FilterNameTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2024 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.filter;
19 |
20 | import org.junit.jupiter.api.Test;
21 | import static org.junit.jupiter.api.Assertions.*;
22 |
23 |
24 | /**
25 | * Tests the {@link FilterName} default implementation.
26 | *
27 | * @author Martin Desruisseaux (Geomatys)
28 | * @version 3.1
29 | * @since 3.1
30 | */
31 | public final class FilterNameTest {
32 | /**
33 | * Creates a new test case.
34 | */
35 | public FilterNameTest() {
36 | }
37 |
38 | /**
39 | * Tests {@link FilterName#values()}
40 | */
41 | @Test
42 | public void testValues() {
43 | assertArrayEquals(FilterName.values(), new FilterName[] {
44 | FilterName.RESOURCE_ID,
45 | FilterName.INCLUDE,
46 | FilterName.EXCLUDE
47 | });
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/geoapi/src/test/java/org/opengis/referencing/operation/MatrixTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2023-2024 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.referencing.operation;
19 |
20 | import org.junit.jupiter.api.Test;
21 | import static org.junit.jupiter.api.Assertions.*;
22 |
23 |
24 | /**
25 | * Tests {@link Matrix}
26 | *
27 | * @author Martin Desruisseaux (Geomatys)
28 | * @version 3.1
29 | * @since 3.1
30 | */
31 | public final class MatrixTest {
32 | /**
33 | * Creates a new test case.
34 | */
35 | public MatrixTest() {
36 | }
37 |
38 | /**
39 | * Tests {@link Matrix#isIdentity()}.
40 | */
41 | @Test
42 | public void testIdentity() {
43 | assertFalse(new MatrixMock(2, 1, 0).isIdentity());
44 | assertTrue (new MatrixMock(3, 1, 0).isIdentity());
45 | assertFalse(new MatrixMock(3, 0, 0).isIdentity());
46 | assertFalse(new MatrixMock(3, 1, 1).isIdentity());
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/geoapi/src/test/java/org/opengis/util/CodeListTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2004-2024 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.util;
19 |
20 | import org.junit.jupiter.api.Test;
21 |
22 | import static org.junit.jupiter.api.Assertions.*;
23 |
24 |
25 | /**
26 | * Tests {@link CodeList}.
27 | *
28 | * @author Martin Desruisseaux (Geomatys)
29 | * @version 3.1
30 | * @since 3.1
31 | */
32 | public final class CodeListTest {
33 | /**
34 | * Creates a new test case.
35 | */
36 | public CodeListTest() {
37 | }
38 |
39 | /**
40 | * Tests {@link CodeList#toComparableName(String)}.
41 | */
42 | @Test
43 | public void testToComparableName() {
44 | String identifier = "test";
45 | assertSame (identifier, CodeList.toComparableName(identifier));
46 | assertEquals(identifier, CodeList.toComparableName(" te-st "));
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/ogcmetanorma.json:
--------------------------------------------------------------------------------
1 | {
2 | "0": {
3 | "OGC_doc_number": "23-016",
4 | "urn":"http://www.opengis.net/doc/IS/geoapi/4.0",
5 | "title":"OGC GeoAPI",
6 | "version":"4.0.0",
7 | "path":"src/main/metanorma/standard.adoc"
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/README.md:
--------------------------------------------------------------------------------
1 | Root directory of the GeoAPI specification and of files that apply to all modules.
2 | For building the project, see the [tools](../tools) directory.
3 |
--------------------------------------------------------------------------------
/src/main/javadoc/README.md:
--------------------------------------------------------------------------------
1 | The content of this directory is either referenced by some options given to `javadoc`,
2 | or copied as additional resource files after the Javadoc has been generated.
3 |
4 | * [Script for generating the Javadoc](https://github.com/opengeospatial/geoapi/blob/master/tools/src/main/bash/generate-javadoc.sh)
5 | * [Doclet source code](https://github.com/opengeospatial/geoapi/blob/master/tools/src/main/java/org/opengis/tools/doclet/FlushableDoclet.java)
6 |
--------------------------------------------------------------------------------
/src/main/javadoc/content.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Stylesheet for the content.html file.
3 | */
4 | caption {
5 | color: darkblue;
6 | font-weight: bold;
7 | font-size: large;
8 | margin-top: 40px;
9 | margin-bottom: 9px;
10 | }
11 |
12 | table {
13 | width: auto;
14 | border: none;
15 | border-spacing: 0;
16 | padding: 0;
17 | text-align: left;
18 | white-space: nowrap;
19 | }
20 |
21 | table tr th {
22 | padding: 3px 9px;
23 | }
24 |
25 | table tr td {
26 | padding: 0 9px;
27 | vertical-align: text-top;
28 | }
29 |
30 | .separator {
31 | padding: 0;
32 | }
33 |
34 | .header {
35 | background: lightgray;
36 | }
37 |
38 | .package {
39 | color: white;
40 | background: darkblue;
41 | font-size: 110%;
42 | }
43 |
44 | .type {
45 | font-weight: bold;
46 | }
47 |
48 | .member {
49 | padding: 0 9px 0 21px;
50 | }
51 |
52 | .spec {
53 | font-size: smaller;
54 | }
55 |
56 | .new {
57 | color: cadetblue;
58 | text-align: center;
59 | }
60 |
61 | .incompatible {
62 | color: red;
63 | text-align: center;
64 | }
65 |
66 | .warning {
67 | color: darkgoldenrod;
68 | text-align: center;
69 | }
70 |
71 | .new a, .incompatible a, .warning a {
72 | text-decoration: none;
73 | color: currentColor;
74 | }
75 |
--------------------------------------------------------------------------------
/src/main/javadoc/departure.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Stylesheet for the departures.html file.
3 | */
4 | section.categories {
5 | }
6 |
7 | section.types {
8 | margin-left: 30px;
9 | }
10 |
11 | section.members {
12 | margin-left: 30px;
13 | }
14 |
15 | div.desc {
16 | margin-left: 30px;
17 | margin-right: 40px;
18 | margin-top: 9px;
19 | margin-bottom: 9px;
20 | text-align: justify;
21 | }
22 |
23 | h2 {
24 | margin-top: 60px;
25 | }
26 |
27 | h2, h3, h4 {
28 | margin-bottom: 9px;
29 | }
30 |
--------------------------------------------------------------------------------
/src/main/javadoc/overview.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | GeoAPI
6 |
7 |
8 | Java interfaces derived from OGC and ISO abstract models.
9 | In a series of packages and modules in the org.opengis
® namespace,
10 | GeoAPI defines interfaces for metadata handling, for geodetic referencing (map projections),
11 | for the representation of features and for their filtering.
12 | The GeoAPI interfaces closely follow the abstract models published collaboratively by the
13 | International Organization for Standardization (ISO )
14 | in its 19100 series of documents and the
15 | Open Geospatial Consortium (OGC )
16 | in its abstract and implementation specifications.
17 | The normative part of GeoAPI is the org.opengis.geoapi
module,
18 | Other modules are conformance tests or examples.
19 | See the GeoAPI home page for more information.
20 |
21 | Requirements:
22 | This version of GeoAPI requires Java 11 or later and the
23 | JSR -385 units of measurement API .
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/src/main/javadoc/warning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opengeospatial/geoapi/04262b65da0f14d219e6b7f2876c456a07cdb272/src/main/javadoc/warning.png
--------------------------------------------------------------------------------
/src/main/metanorma/.gitignore:
--------------------------------------------------------------------------------
1 | # Metanorma generated output
2 | _files
3 | iev
4 | relaton
5 | document.err
6 | document.pdf
7 | document.html
8 | document.xml.abort
9 | document.presentation.xml
10 | document_*
11 |
--------------------------------------------------------------------------------
/src/main/metanorma/Gemfile:
--------------------------------------------------------------------------------
1 | source "https://rubygems.org"
2 |
3 | gem "metanorma-cli"
4 | gem "relaton-cli"
5 |
--------------------------------------------------------------------------------
/src/main/metanorma/build.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | #
3 | # Builds GeoAPI specification with Metanorma in a Linux environment.
4 | # This script assumes that the `metanorma` command-line is available
5 | # on the path. See https://www.metanorma.org/install/linux/
6 | #
7 | # The main purpose of this script is to write the output in the target
8 | # directory for avoiding to pollute the source directory.
9 | #
10 |
11 | # Stop the script on first error.
12 | set -o errexit
13 |
14 | SOURCE_DIR="`dirname $0`"
15 | SOURCE_DIR="`realpath $SOURCE_DIR`"
16 | TARGET_DIR="`realpath $SOURCE_DIR/../../../target`"
17 | mkdir --parents --verbose $TARGET_DIR
18 |
19 | metanorma compile --output-dir "$TARGET_DIR" --agree-to-terms --type ogc --extensions html standard.adoc
20 |
21 | # Following directory is empty after a successful build.
22 | rmdir _files
23 |
--------------------------------------------------------------------------------
/src/main/metanorma/code/java/JNDI.adoc:
--------------------------------------------------------------------------------
1 | [[JNDI]]
2 | ==== Names in JNDI context
3 |
4 | The ISO 19103:2015 name types (<>) define mapping methods from a name to the object identified by that name.
5 | But the mapping methods defined by ISO 19103:2015 are not part of the `NameSpace` interface defined by GeoAPI.
6 | Instead, GeoAPI leaves that functionality to frameworks such as the Java Naming and Directory Interface™ (JNDI).
7 | Java applications which need such mapping may use the methods in the `javax.naming.Context` interface:
8 |
9 | .Java Naming and Directory Interface equivalences
10 | [.compact, options="header"]
11 | |=======================================================================================
12 | |ISO 19103:2015 `NameSpace` member |`org.opengis.util.NameSpace` |`javax.naming.Context`
13 | |`isGlobal` |`isGlobal()` |
14 | |`acceptableClassList` | |
15 | |`generateID(Any)` | |
16 | |`locate(LocalName)` | |`lookup(Name)`
17 | |`name` |`name()` |`getNameInNamespace()`
18 | |`registerID(LocalName, Any)` | |`bind(Name, Object)`
19 | |`select(GenericName)` | |`lookup(Name)`
20 | |`unregisterID(LocalName, Any)` | |`unbind(Name)`
21 | |=======================================================================================
22 |
--------------------------------------------------------------------------------
/src/main/metanorma/code/java/code_list.adoc:
--------------------------------------------------------------------------------
1 | [[java_code_list]]
2 | ==== Code list at runtime
3 |
4 | Controlled vocabularies (<>) can take the form of enumerations or code lists.
5 | These two types are implemented by `java.lang.Enum` and `org.opengis.util.CodeList` respectively.
6 | The use of `CodeList` classes includes accessing statically defined elements,
7 | defining new elements and retrieving any element defined for the code list.
8 | Considering, for example, `org.opengis.referencing.cs.AxisDirection`,
9 | the following codes could be used:
10 |
11 | [source,java]
12 | ---------------------------------------------------------------------------------------------
13 | AxisDirection north;
14 | north = AxisDirection.NORTH; // Compile-time value (safest).
15 | north = AxisDirection.valueOf("NORTH"); // Runtime value (more dynamic).
16 | north = CodeList.valueOf(AxisDirection.class, "NORTH"); // Runtime type and value.
17 | ---------------------------------------------------------------------------------------------
18 |
19 | where the `.valueOf(…)` form above will create a new value if it does not exist.
20 | Special care should be taken to keep such calls consistent throughout the code
21 | since the `CodeList` will create a new element if there are any difference in the `String` parameters.
22 | The list of all elements (including new elements created by `valueOf(…)`) can be obtained as below:
23 |
24 | [source,java]
25 | --------------------------------------------------
26 | AxisDirection[] elements = AxisDirection.values();
27 | --------------------------------------------------
28 |
--------------------------------------------------------------------------------
/src/main/metanorma/code/java/internationalization.adoc:
--------------------------------------------------------------------------------
1 | [[InternationalString]]
2 | ==== Multilingual string
3 |
4 | Internationalization (<>) is handled using objects provided by the standard Java library
5 | such as `java.util.Locale`, with the addition of one GeoAPI interface.
6 | The `org.opengis.util.InternationalString` interface provides a container for multiple versions of the same text,
7 | each for a specific `Locale` — the identifier used in Java for a specific language, possibly in a named territory.
8 |
9 | [source,java]
10 | ----------------------------------------------------------------------------
11 | NameFactory factory = ... // Implementation dependent.
12 | InternationalString multiLingual = factory.createInternationalString(Map.of(
13 | Locale.ENGLISH, "My documents",
14 | Locale.FRENCH, "Mes documents"));
15 |
16 | System.out.println(localized); // Language at implementation choice.
17 | System.out.println(localized.toString(Locale.FRENCH));
18 | ----------------------------------------------------------------------------
19 |
20 | The method to obtain factories is not specified by this standard and therefore depends on the design of the library implementation.
21 | Also, the locale used by default depends on the choice of the implementation so the result of the call `toString()`
22 | without parameters will depend on the implementation.
23 |
--------------------------------------------------------------------------------
/src/main/metanorma/code/java/metadata.adoc:
--------------------------------------------------------------------------------
1 | [[java_metadata]]
2 | ==== Metadata
3 |
4 | The interfaces in the GeoAPI metadata packages (<>) are primarily containers of primitive types and other metadata types.
5 | Metadata elements will be encountered for example from interfaces in the referencing packages.
6 | The metadata interfaces enable users to decompose a given element into smaller elements.
7 | As an example, the following code prints a list of all individuals (ignoring organizations)
8 | for a document starting with a `Citation` element:
9 |
10 | [source,java]
11 | ---------------------------------------------------------------------------
12 | Citation citation = ...; // We assume this instance is already available
13 |
14 | for (Responsibility rp : citation.getCitedResponsibleParties()) {
15 | if (rp.getRole() == Role.AUTHOR) {
16 | for (Party party : rp.getParties()) {
17 | if (party instanceof Individual) {
18 | InternationalString author = rp.getName();
19 | System.out.println(author);
20 | }
21 | }
22 | }
23 | }
24 | ---------------------------------------------------------------------------
25 |
26 | The remainder of the metadata packages work in similar ways,
27 | where client code must decompose an instance to obtain the elements needed.
28 |
29 |
30 | ===== Write operations
31 | The GeoAPI metadata interfaces provide no methods to set the values of the types.
32 | Furthermore, because the way that wildcards for Java Generics have been used in the interfaces,
33 | the collection instances are constrained to be read only.
34 | Implementers are free to provide a fully mutable implementation of GeoAPI interfaces,
35 | but users may need to cast to the implementation classes in order to modify a metadata.
36 |
--------------------------------------------------------------------------------
/src/main/metanorma/figures/derivatives.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opengeospatial/geoapi/04262b65da0f14d219e6b7f2876c456a07cdb272/src/main/metanorma/figures/derivatives.png
--------------------------------------------------------------------------------
/src/main/metanorma/geoapi.css:
--------------------------------------------------------------------------------
1 | /*
2 | * This stylesheet is applied in addition to the standard.css;
3 | * it does not replace it. We need to declare in this file only
4 | * the elements that we want to overwrite.
5 | */
6 |
7 | p:not(.NormRef):not(.Biblio):not(div.formula *) {
8 | text-align: justify;
9 | }
10 |
11 | li {
12 | text-align: justify;
13 | }
14 |
15 | div.figure, div.formula {
16 | background-color: inherit;
17 | }
18 |
--------------------------------------------------------------------------------
/src/main/metanorma/metanorma.yml:
--------------------------------------------------------------------------------
1 | ---
2 | metanorma:
3 | source:
4 | files:
5 | - standard.adoc
6 |
--------------------------------------------------------------------------------
/src/main/metanorma/requirements/README.md:
--------------------------------------------------------------------------------
1 | # Requirements
2 |
3 | This folder contains requirements description.
4 | Each file is a single requirement.
5 | The naming convention for these files is:
6 | `REQn.adoc` where _n_ corresponds to the requirement number.
7 | Numbers should have preceding zeros appropriate for the total number of requirements in the project.
8 |
9 | The requirement files are integrated into the main document as links.
10 | For each requirement, there should be a corresponding Abstract Test in the "abstract_tests" folder.
11 | Sample code may reference one or more requirements and should state which requirements are included
12 | in the code by adding the following line to the Extended Description:
13 |
14 | ```
15 | #REQS: reqnum1,reqnum2,...reqnumn
16 | ```
17 |
--------------------------------------------------------------------------------
/src/main/metanorma/requirements/class_app.adoc:
--------------------------------------------------------------------------------
1 | [cols="1,4",width="90%",options="unnumbered"]
2 | |===
3 | 2+|*Requirements Class: Application* {set:cellbgcolor:#CACCCE}
4 | 2+|http://www.opengis.net/spec/ABCD/m.n/req/req-class-app {set:cellbgcolor:#FFFFFF}
5 | |Target type | Application
6 | |Dependency |
7 | |*Requirement 1* {set:cellbgcolor:#CACCCE} |http://www.opengis.net/spec/ABCD/m.n/req/req-class-app/req-authority +
8 | Conformance with authority definitions {set:cellbgcolor:#FFFFFF}
9 | {set:cellbgcolor:#FFFFFF}
10 | |*Requirement 2* {set:cellbgcolor:#CACCCE} |http://www.opengis.net/spec/ABCD/m.n/req/req-class-app/req-wkt +
11 | Conformance with WKT syntax {set:cellbgcolor:#FFFFFF}
12 | {set:cellbgcolor:#FFFFFF}
13 | |===
14 |
15 | #TODO: Describe requirements.#
16 |
--------------------------------------------------------------------------------
/src/main/metanorma/requirements/req_behavior.adoc:
--------------------------------------------------------------------------------
1 | [[req_behavior]]
2 | [requirement]
3 | ====
4 | [%metadata]
5 | label:: /req/req-class-lib/req-behavior
6 | [.component,class=conditions]
7 | --
8 | . Implementations shall follow the dictates of the Java or Python API documentation.
9 | --
10 |
11 | [.component,class=part]
12 | --
13 | Libraries which provide code implementations of the GeoAPI interfaces shall follow
14 | the dictates of the Java or Python API documentation.
15 | --
16 | ====
17 |
--------------------------------------------------------------------------------
/src/main/metanorma/requirements/req_factory_methods.adoc:
--------------------------------------------------------------------------------
1 | [[req_factory_methods]]
2 | [requirement]
3 | ====
4 | [%metadata]
5 | label:: /req/req-class-lib/req-factory-methods
6 | [.component,class=conditions]
7 | --
8 | . Factory methods shall return object or throw the documented exception.
9 | --
10 |
11 | [.component,class=part]
12 | --
13 | Methods which create new instances, such as `Factory` methods,
14 | shall return the desired value or throw the exception documented in the API,
15 | such as `FactoryException` or a sub-type.
16 | Returning `null` is not allowed.
17 | --
18 | ====
19 |
--------------------------------------------------------------------------------
/src/main/metanorma/requirements/req_getters.adoc:
--------------------------------------------------------------------------------
1 | [[req_getters]]
2 | [requirement]
3 | ====
4 | [%metadata]
5 | label:: /req/req-class-lib/req-getters
6 | [.component,class=conditions]
7 | --
8 | . Optional getter methods should return the value, or `null` or `None`.
9 | . Mandatory getter methods should return a non-null value or throw an exception.
10 | --
11 |
12 | [.component,class=part]
13 | --
14 | Optional getter methods should return the requested value unless the value
15 | is missing or the method is not implemented in which case they should return
16 | an empty collection if possible, or `null` or `None` otherwise.
17 | --
18 |
19 | [.component,class=part]
20 | --
21 | Unless otherwise specified in this specification or in the API documentation,
22 | mandatory getter methods should return the requested value unless the value
23 | is missing in which case they should throw an exception such as `IllegalStateException`.
24 | --
25 |
26 | [.component,class=part]
27 | --
28 | As an exception to condition B,
29 | mandatory getter methods in the metadata packages are allowed to return `null` or `None`
30 | because of the extensive existence of incomplete metadata (<>).
31 | --
32 | ====
33 |
34 | "Getter" methods (methods which obtain a value from an object)
35 | are documented through annotations in the Javadoc as mandatory or optional.
36 |
--------------------------------------------------------------------------------
/src/main/metanorma/requirements/req_implementation_discovery.adoc:
--------------------------------------------------------------------------------
1 | [[req_implementation_discovery]]
2 | [requirement]
3 | ====
4 | [%metadata]
5 | label:: /req/req-class-lib/req-implementation_discovery
6 | [.component,class=conditions]
7 | --
8 | . Java implementations of `RegisterOperations` (if any) shall be declared in `module-info`.
9 | --
10 |
11 | [.component,class=part]
12 | --
13 | If a Java implementation of `RegisterOperations` exists,
14 | it shall be declared in `module-info.java` like below
15 | (replace `my.implementation` by the actual class name):
16 |
17 | [source,java,options="unnumbered"]
18 | ----------------------------------------------------------------------------
19 | provides org.opengis.referencing.RegisterOperations
20 | with my.implementation.classname
21 | ----------------------------------------------------------------------------
22 |
23 | --
24 | ====
25 |
--------------------------------------------------------------------------------
/src/main/metanorma/requirements/req_setters.adoc:
--------------------------------------------------------------------------------
1 | [[req_setters]]
2 | [requirement]
3 | ====
4 | [%metadata]
5 | label:: /req/req-class-lib/req-setters
6 | [.component,class=conditions]
7 | --
8 | . Setter methods shall either mutate the object or throw an exception.
9 | --
10 |
11 | [.component,class=part]
12 | --
13 | Methods which set the value of an object
14 | shall either succeed or throw an exception such as
15 | `UnsupportedOperationException` if the method is not implemented or if the object is unmodifiable,
16 | `IllegalArgumentException` if the value is illegal in that implementation, or
17 | `IllegalStateException` if some context makes the use of that method illegal.
18 | This list of exception types is not exclusive.
19 | --
20 | ====
21 |
22 | *Example:*
23 | A call to `parameter.setValue(-10.25)` in Java
24 | may have the first of the following results which is applicable:
25 |
26 | * The method is supported and the -10.25 value is valid:
27 | The setter method returns silently.
28 | * The method is not implemented by the library:
29 | `UnsupportedOperationException` is thrown.
30 | * Values for that parameter are restricted to positive numbers:
31 | `IllegalArgumentException` is thrown.
32 | * The `ParameterValue` instance has been declared unmodifiable:
33 | `IllegalStateException` or `UnsupportedOperationException` is thrown.
34 |
--------------------------------------------------------------------------------
/src/main/metanorma/sections/annex-bibliography.adoc:
--------------------------------------------------------------------------------
1 | [bibliography]
2 | [[bibliography]]
3 | == Bibliography
4 |
5 | Additional information and definitions were taken from the following sources.
6 |
7 | * [[[IOGP,EPSG]]], IOGP: _The EPSG Geodetic Parameter Dataset._ https://epsg.org/
8 |
9 | * [[[JUnit,JUnit]]], JUnit team: _The Junit framework._ https://junit.org/
10 |
11 | * [[[OGC03-064,OGC 03-064r10]]], Greg Reynolds: OGC 03-064r10, _Application Objects_ (2005)
12 |
13 | * [[[OGC07-092,OGC 07-092r1]]], Arliss Whiteside: OGC 07-092r1, _Definition identifier URNs in OGC namespace_ (2007)
14 |
15 | * [[[OGC16-019,OGC 16-019r4]]], George Percivall: OGC 16-019r4, _Open Geospatial APIs — White Paper_
16 |
17 | * [[[OGC17-087,OGC 17-087r13]]], John R. Herring: OGC 17-087r13, _Features and geometry — Part 1: Feature models_
18 |
19 | * [[[RFC4647,RFC 4647]]], IETF: _Matching of Language Tags_
20 |
21 | * [[[UCUM,UCUM]]], UCUM: _The Unified Code for Units of Measure._ https://unitsofmeasure.org/
22 |
--------------------------------------------------------------------------------
/src/main/metanorma/sections/annex-code.adoc:
--------------------------------------------------------------------------------
1 | [appendix]
2 | [[examples]]
3 | == Examples
4 |
5 | This appendix provides code snippets in the {supported-languages} programming languages
6 | for aspects discussed in the Geospatial API overview (<>).
7 |
8 | [[java_examples]]
9 | === Java examples
10 |
11 | This section provides code snippets in the Java programming languages
12 | for aspects discussed in the Geospatial API overview (<>).
13 |
14 | include::../code/java/annotation.adoc[]
15 |
16 | include::../code/java/code_list.adoc[]
17 |
18 | include::../code/java/JNDI.adoc[]
19 |
20 | include::../code/java/internationalization.adoc[]
21 |
22 | include::../code/java/parameterized_units.adoc[]
23 |
24 | include::../code/java/metadata.adoc[]
25 |
26 | include::../code/java/create_crs.adoc[]
27 |
28 | include::../code/java/coordinate_operation.adoc[]
29 |
--------------------------------------------------------------------------------
/src/main/metanorma/sections/clause_7_normative_text.adoc:
--------------------------------------------------------------------------------
1 | [[requirements]]
2 | == Requirements
3 |
4 | This specification defines requirements for two target types: _libraries_ and _applications_.
5 | A library is a software that exposes the `opengis` packages for use by independent parties.
6 | An application is a software that encapsulates the `opengis` packages for its internal working,
7 | but without exposing them to end users.
8 | Applications have less requirements than libraries.
9 | For example, compliant libraries shall obey to method signatures declared in published OGC interfaces,
10 | otherwise other developers could not base their developments on a common set of API.
11 | However, applications are free to modify, add or remove methods as they see fit.
12 | If the `opengis` API of the application is not invoked by any external user,
13 | then changes to that API has no impact on interoperability.
14 |
15 |
16 | [[requirements-application]]
17 | === Application requirements
18 |
19 | This section describes requirements for applications implementing GeoAPI.
20 | These requirements apply also to libraries (<>)
21 | since applications are built from libraries.
22 |
23 | include::../requirements/class_app.adoc[]
24 |
25 |
26 | [[requirements-library]]
27 | === Library requirements
28 |
29 | This section describes requirements for ensuring source compatibility or binary compatibility
30 | (when applicable) of libraries compliant with this specification.
31 | These requirements apply to the _libraries_ made available for use by other developers.
32 | The requirements usually do not apply to applications distributed to end users.
33 |
34 | include::../requirements/class_lib.adoc[]
35 |
--------------------------------------------------------------------------------
/src/main/metanorma/sections/informative/collections.adoc:
--------------------------------------------------------------------------------
1 | [[collections]]
2 | ==== Collections
3 | _From <> §7.3.2.3_
4 |
5 | GeoAPI implements multi-valued properties using the standard Collections Frameworks provided by {supported-languages}.
6 | If the property has the `isUnique` meta-property, then the collection is a `Set`:
7 | a finite collection of objects where each object appears only once in unspecified order.
8 | If the property has the `isOrdered` meta-property, then the collection is a `Sequence`:
9 | a collection of object where elements are ordered and may appear many times.
10 |
11 | .Collections mapping
12 | [options="header"]
13 | |===============================================================
14 | |Meta-property |ISO 19103:2015 |Java type |Python type
15 | |`isUnique` |`Set` ^(1)^ |`java.util.Set` |`Set`
16 | |`isOrdered` |`Sequence` ^(1)^ |`java.util.List`|`Sequence`
17 | | |`Dictionary` |`java.util.Map` |`dict`
18 | |===============================================================
19 |
20 | Notes:
21 |
22 | * (1) Deprecated in ISO 19103:2024, but listed because still present in some standards.
23 |
24 | Unless otherwise required by the semantic of a property, GeoAPI prefers to use the `Collection` type in Java method signatures.
25 | This allows implementers to choose their preferred subtypes, usually `Set` or `List`.
26 | The `Set` type is not the default type because enforcing element uniqueness may constrain implementations to use hash tables
27 | or similar algorithms, which is not always practical.
28 |
--------------------------------------------------------------------------------
/src/main/metanorma/sections/informative/core_types.adoc:
--------------------------------------------------------------------------------
1 | [[core_types]]
2 | === Core data types mapping
3 |
4 | The ISO 19103 specification (_Geographic Information – Conceptual schema language_) defines types
5 | which are used as building blocks by the other standards in the 19100 series.
6 | <> defines code data types such as real numbers, dates and times.
7 | GeoAPI maps these types either to existing types from the {supported-languages} standard libraries or, when needed,
8 | to types defined in the `opengis.util` package.
9 | That utility package is used by GeoAPI for types defined in the ISO 19103 specification
10 | for which no equivalence is already present in the {supported-languages} standard libraries.
11 |
12 | For various practical reasons the mapping from ISO types to programming language types is not a one-to-one relationship.
13 | The mapping actually used is explained below.
14 | Furthermore, not all of the types in ISO 19103 have a mapping defined because the need for these types has not yet appeared,
15 | since they have not yet appeared in any other specification for which GeoAPI defines interfaces.
16 | Such types are listed as "unimplemented" in the tables below.
17 |
18 |
19 | include::common_types.adoc[]
20 |
21 | include::datetime.adoc[]
22 |
23 | include::collections.adoc[]
24 |
25 | include::controlled_vocabulary.adoc[]
26 |
27 | include::generic_name.adoc[]
28 |
29 | include::records.adoc[]
30 |
31 | include::internationalization.adoc[]
32 |
33 | include::units.adoc[]
34 |
--------------------------------------------------------------------------------
/src/main/metanorma/sections/informative/derived_properties.adoc:
--------------------------------------------------------------------------------
1 | [[derived_properties]]
2 | ==== Derived methods
3 |
4 | GeoAPI may define additional methods not explicitly specified in OGC/ISO abstract models,
5 | when the values returned by those methods can be derived from the values provided by standard OGC/ISO properties.
6 | Those extensions are enabled by the way properties are handled.
7 | In OGC/ISO abstract models, each property may have its value stored verbatim,
8 | for example as a column in a database table, an XML element in a file, or a field in a class.
9 | For enabling efficient use of OGC/ISO models in relational databases or XML files,
10 | the models are generally non-redundant: each value is stored in exactly one property.
11 | By contrast in GeoAPI, all properties are getter methods:
12 | no matter how implementations store property values, users can fetch them only through method calls.
13 | Since methods are free to compute values from other properties,
14 | GeoAPI uses this capability for making some information more easily accessible
15 | in situations where property values can be reached only indirectly in OGC/ISO models.
16 | Thee additional methods introduce apparent duplication,
17 | but they should be thought of as links to the real properties, rather than copies of the property values.
18 | Such methods are added sparsely,
19 | in places where introducing them brings some harmonization by reducing the need for special cases.
20 | Examples include: fetching the head of an arbitrary `GenericName`,
21 | fetching the Geodetic Reference Frame indirectly associated to a `ProjectedCRS`,
22 | fetching axes of an arbitrary Coordinate Reference System (including compound ones), and more.
23 | The additional methods can be recognized by the absence of `@UML` annotation.
24 |
--------------------------------------------------------------------------------
/src/main/metanorma/sections/informative/feature/index.adoc:
--------------------------------------------------------------------------------
1 | [[feature]]
2 | === Feature packages
3 |
4 | The GeoAPI feature package uses the `opengis.feature` namespace
5 | and implements the types defined in the <> – _Rules for application schema_ specification.
6 | The main UML materialized by GeoAPI is ISO 19109 figure 5 #(TODO: verify)#.
7 |
8 | #TODO: provide UML and explain the mapping.#
9 |
10 | include::moving.adoc[]
11 |
--------------------------------------------------------------------------------
/src/main/metanorma/sections/informative/feature/moving.adoc:
--------------------------------------------------------------------------------
1 | [[moving_feature]]
2 | ==== Moving features
3 | _From <> figure 3_
4 |
5 | Features often have an attribute of type `Geometry` (<>).
6 | A sub-type of `Geometry` is `Trajectory` (<>).
7 | A feature where the geometry is a trajectory is a moving feature.
8 | In addition of time-dependent positions defined by the trajectory,
9 | a moving feature may also have time-dependent attribute values.
10 | These attributes are represented by the `DynamicAttribute` sub-type.
11 |
--------------------------------------------------------------------------------
/src/main/metanorma/sections/informative/filter/capabilities.adoc:
--------------------------------------------------------------------------------
1 | [[filter_capabilities]]
2 | ==== Capabilities
3 | _From <> §7.13_
4 |
5 | `FilterCapabilities` is the entry point for listing which expressions and filter operators are available.
6 | Its capabilities are separated in the following categories:
7 |
8 | * `IdCapabilities` lists names that represent the resource identifier elements that the service supports.
9 | * `ScalarCapabilities` advertises which logical, comparison and arithmetic operators the service supports.
10 | * `SpatialCapabilities` advertises which spatial operators and geometric operands the service supports.
11 | * `TemporalCapabilities` advertises which temporal operators and temporal operands the service supports.
12 | * `AvailableFunction` describes functions that may be used in filter expressions.
13 | * `ExtendedCapabilities` advertises any additional operators added to the filter syntax.
14 |
15 | The enumeration of scalar, spatial and temporal capabilities use the code lists shown in <>.
16 | The arguments of available functions are described by the unified parameter API (<>).
17 |
--------------------------------------------------------------------------------
/src/main/metanorma/sections/informative/filter/filter.adoc:
--------------------------------------------------------------------------------
1 | [[filter]]
2 | ==== Filter
3 | _From <> §7.[7…11]_
4 |
5 | A filter is a predicate that identifies a subset of resources from a collection of resources.
6 | Each resource instance is evaluated against a filter, which always evaluates to `true` or `false`.
7 | If the filter evaluates to `true`, the resource instance is included in the result set.
8 | If the filter evaluates to `false`, the resource instance is ignored.
9 | Roughly speaking, a filter encodes the information present in the `WHERE` clause of a SQL statement.
10 |
11 | There are various sub-interfaces of this interface that represent many types of filters,
12 | such as simple property comparisons or spatial queries.
13 | The following diagram shows the 4 basic types of filters
14 | together with the code lists identifying which operation is applied.
15 | More specialized sub-types such as `BinaryComparisonOperator` and `DistanceOperator` are not shown in this diagram.
16 |
17 | [[filter_UML]]
18 | .Partial UML of filters
19 | image::filter.svg[Filter UML]
20 |
21 | In the above diagram, the `operatorType` property defined in the `Filter` parent interface
22 | is overridden by more specialized types (shown as associations) in each sub-interface.
23 | This is <>.
24 | Likewise `expression` is defined in parent interface with unconstrained multiplicity,
25 | but that multiplicity is restrained in sub-interfaces.
26 |
27 | Filter operands are expressions.
28 | For example, a filter named `"PropertyIsEqualTo"` uses two expressions.
29 | The first expression may be a `ValueReference` fetching the value of a property
30 | and the second expression may be a `Literal` with the desired value.
31 |
--------------------------------------------------------------------------------
/src/main/metanorma/sections/informative/filter/index.adoc:
--------------------------------------------------------------------------------
1 | [[filtering]]
2 | === Filter packages
3 |
4 | The GeoAPI filter packages use the `opengis.filter` namespace
5 | and implement the types defined in the <> - _Filter encoding_ specification.
6 | GeoAPI ignores the XML encoding aspects and retains only the types defined in UML diagrams.
7 |
8 | The two most fundamental types are `Expression` and `Filter`, shown in the next sections.
9 | All expressions are identified by a `ScopedName` and all filters are identified by a `CodeList`.
10 | This is an extension to the ISO 19143 specification where only some specific sub-types have these identifications.
11 | This generalization allows, in some cases, to execute generic code without the need to check the filter or expression sub-types.
12 |
13 | include::expression.adoc[]
14 |
15 | include::filter.adoc[]
16 |
17 | include::capabilities.adoc[]
18 |
19 | include::departures.adoc[]
20 |
--------------------------------------------------------------------------------
/src/main/metanorma/sections/informative/geometry/departures.adoc:
--------------------------------------------------------------------------------
1 | [[geometry_departures]]
2 | ==== Departures from ISO 19107
3 |
4 | Geometries in GeoAPI differ from the OGC/ISO standards
5 | as described in the following sub-sections.
6 |
7 |
8 | [[geometry_departures_as_renaming]]
9 | ==== Renaming
10 | The parent class of all geometries is called `GM_Object` in the ISO 19107 standard.
11 | GeoAPI interfaces use the `Geometry` name instead,
12 | as the omission of the `GM_ prefix` would leave a name too similar to Java’s `Object` class.
13 |
14 | [[geometry_departures_for_convenience]]
15 | ===== Convenience
16 | GeoAPI has moved the `DirectPosition` and `Envelope` types from the coordinate sub-package
17 | where they are defined in the ISO 19107 specification up to the `opengis.geometry` package
18 | due to their importance and frequency of use.
19 |
20 | [[geometry_departures_as_additions]]
21 | ===== Efficiency
22 | GeoAPI adds the following shortcut methods in the `Envelope` interface.
23 | They are frequently requested information that implementers can often provide
24 | in a more efficient way than forcing users to compute them from lower and upper corners:
25 | `dimension`, `minimum`, `maximum`, `median` and `span`.
26 |
--------------------------------------------------------------------------------
/src/main/metanorma/sections/informative/mapping_rules.adoc:
--------------------------------------------------------------------------------
1 | [[mapping_rules]]
2 | === General mapping rules
3 |
4 | This section gives high-level guidance in the mapping from UML to {supported-languages} API applying to all GeoAPI types.
5 | Other sections after this one will focus on specific type subsets (metadata, referencing, _etc_).
6 | The guidelines are not strict rules; departures from them exist on a case-by-case basis when semantically justifiable.
7 |
8 |
9 | include::naming.adoc[]
10 |
11 | include::multiplicity.adoc[]
12 |
13 | include::annotations.adoc[]
14 |
15 | include::derived_properties.adoc[]
16 |
--------------------------------------------------------------------------------
/src/main/metanorma/sections/informative/metadata/nil_values.adoc:
--------------------------------------------------------------------------------
1 | [[nil_values]]
2 | ==== Nil values
3 |
4 | <> – _XML schema implementation for fundamental concepts_ allows property values to be nil
5 | even when the property is declared mandatory by ISO 19115-1 standard.
6 | In such case, ISO 19115-3 requires to specify why the property is nil.
7 | Nil reasons can be:
8 |
9 | * *Template:* the metadata is only a template with values to be provided later.
10 | * *Withheld:* the value is not divulged.
11 | * *Unknown:* a correct value probably exists but is not known and not computable.
12 | * *Missing:* the correct value is not readily available and may not exist.
13 | * *Inapplicable:* there is no value.
14 |
15 | GeoAPI does not provide a mechanism for specifying the reason why a property is nil.
16 | Instead, the GeoAPI rules of method return values have been relaxed for the metadata packages.
17 | Elsewhere in GeoAPI, methods which have a mandatory obligation in the specification
18 | must return an instance of the return type and cannot return the Java `null` or Python `None` reference.
19 | However, in the metadata package this rule is relaxed because data sets are encountered so frequently
20 | which have nil values for any of above-cited reasons.
21 | In the GeoAPI metadata packages, methods for mandatory properties should return a valid instance,
22 | but users should be prepared to receive `null` (Java), `None` (Python) or an empty collection.
23 | This modification has been adopted to allow implementations sufficient latitude
24 | about how to handle metadata records with nil values.
25 | Nonetheless, sophisticated implementations can determine if a metadata record conforms with
26 | the ISO 19115-1 specification by inspecting the annotations at runtime (<>).
27 |
--------------------------------------------------------------------------------
/src/main/metanorma/sections/informative/temporal/departures.adoc:
--------------------------------------------------------------------------------
1 | [[temporal_departures]]
2 | ==== Departures from ISO 19108
3 |
4 | Significant departures of GeoAPI from the ISO 19108 standard are the omission of the
5 | `TM_ReferenceSystem` and `TM_TemporalPosition` interfaces, as described in above tables.
6 | The former interface is replaced by `TemporalCRS`, which has been added to ISO 19111 after the publication of ISO 19108.
7 | As a consequence of this replacement, the `TM_TemporalPosition` interface become similar to `DirectPosition`
8 | and can be replaced by the latter with the following substitutions:
9 |
10 | * The `TM_TemporalPosition.frame` association is replaced by `DirectPosition.coordinateReferenceSystem`.
11 | * The `TM_Coordinate.coordinateValue` property is replaced by `DirectPosition.coordinate`.
12 | * The `TM_TemporalPosition.indeterminatePosition` property moved to `TM_Instant`.
13 |
14 | The latter change is because `TM_TemporalPosition` is replaced by the temporal objects of the standard library
15 | of the target programming languages, and those standard objects do not have an `indeterminatePosition` property.
16 |
17 | Another harmonization is the omission of the `TM_RelativePosition` code list.
18 | That code list is identical to the ISO 19143 `TemporalOperatorName` code list, except for one value.
19 |
--------------------------------------------------------------------------------
/src/main/metanorma/sections/informative/units.adoc:
--------------------------------------------------------------------------------
1 | [[units]]
2 | ==== Units of measurement
3 | _From <> §8.2.14_
4 |
5 | ISO 19103 represents measurements and their units by two base interfaces:
6 | `Measure` for the result from performing the act of ascertaining the value of a characteristic of some entity,
7 | and `UnitOfMeasure` as a quantity adopted as a standard of measurement for other quantities of the same kind.
8 | These two base interfaces can be specialized with parallel sets of subtypes.
9 | For example, `Length` could be defined as a `Measure` specialization for distances,
10 | accompanied by `UomLength` as a `UnitOfMeasure` specialization for length units.
11 | Likewise, `Area` could be defined together with `UomArea`, `Time` together with `UomTime`, _etc._
12 |
13 | [NOTE]
14 | ======
15 | ISO 19103:2015 §C.4 defined many subtypes such as `Area`, `UomArea`, _etc_.
16 | ISO 19103:2024 defines only the base types.
17 | The legacy subtypes are listed in <>.
18 | ======
19 |
20 | GeoAPI does not define any interface for the ISO 19103 `Measure` and `UnitOfMeasure` types
21 | because {supported-languages} already have their own library for units of measurement.
22 | For example, Java has standardized a set of quantity interfaces in the Java Specification Request <>.
23 | When such a language-specific standard exists and provides equivalent functionality to ISO 19103, that external standard is used.
24 | See Java profile (<>) or Java example code (<>) for more information.
25 |
--------------------------------------------------------------------------------
/src/main/metanorma/sections/profiles/java/annex.adoc:
--------------------------------------------------------------------------------
1 | [appendix,obligation="normative"]
2 | [[java]]
3 | == Java Profile
4 |
5 | In addition to this document, this specification includes the GeoAPI Java Archive file `geoapi.jar`.
6 | That file can be downloaded using the following Maven coordinates:
7 |
8 | [source,xml]
9 | -------------
10 |
11 | org.opengis
12 | geoapi
13 | 4.0-SNAPSHOT
14 |
15 | -------------
16 | #TODO: replace snapshot by final version number.#
17 |
18 | Libraries shall implement at least some interfaces defined in that archive file.
19 | It is not required to implement all interfaces.
20 | The contract for each interface and each method is specified in the javadoc.
21 |
22 | include::uom_jsr.adoc[]
23 |
24 | include::filter.adoc[]
25 |
26 | include::tests.adoc[]
27 |
--------------------------------------------------------------------------------
/src/main/metanorma/sections/profiles/java/filter.adoc:
--------------------------------------------------------------------------------
1 | [[java_filter]]
2 | === Filters and Java functions
3 |
4 | Java `Stream` provides an efficient way to deliver a potentially large number of features.
5 | The GeoAPI interfaces for filters and expressions have been designed for working smoothly
6 | with the `java.util.stream` interfaces. In particular:
7 |
8 | * The GeoAPI `Expression` interface extends the Java `Function` interface.
9 | Consequently, expressions can be used with the Java standard `Stream.map(Function)` method.
10 | * The GeoAPI `Filter` interface extends the Java `Predicate` interface.
11 | Consequently, filters can be used with the Java standard `Stream.filter(Predicate)` method.
12 | * The GeoAPI `SortBy` interface extends the Java `Comparator` interface.
13 | Consequently, sort order can be used with the Java standard `Stream.sorted(Comparator)` method.
14 |
15 | Note that GeoAPI aims for interoperability with streams, but does not mandate their use.
16 | Implementations are free to ignore streams.
17 |
--------------------------------------------------------------------------------
/src/main/metanorma/sections/profiles/java/tests.adoc:
--------------------------------------------------------------------------------
1 | [[tests_java]]
2 | === Tests suite
3 |
4 | The `geoapi-conformance` module contains a number of validators which can be used
5 | in JUnit test cases to test compliance of the objects created in an implementation.
6 | The GeoAPI validators can establish that certain instances are invalid and therefore
7 | can readily be integrated into the test suite of any implementation library.
8 | The following code demonstrates an example which uses the validators to evaluate
9 | an instance object created by the implementation within a unit test.
10 | This test requires the JUnit library, version 4 or later, on the Java Classpath.
11 |
12 | [source,java]
13 | -------------
14 | import static org.opengis.test.Validators.*;
15 |
16 | public class ValidationTests {
17 | @Test
18 | public void testCRS() {
19 | // The implementation would build this CRS
20 | CoordinateReferenceSystem crs = ...;
21 | validate(crs);
22 | }
23 | }
24 | -------------
25 |
26 | If the validation fails, the JUnit library would throw an `AssertionError`.
27 |
28 | #TODO: explain coordinate operation tests, GIGS tests.#
29 |
--------------------------------------------------------------------------------
/src/main/metanorma/sections/profiles/python/annex.adoc:
--------------------------------------------------------------------------------
1 | [appendix,obligation="normative"]
2 | [[python]]
3 | == Python Profile
4 |
5 | #TODO#
6 |
--------------------------------------------------------------------------------
/src/main/metanorma/tests/README.adoc:
--------------------------------------------------------------------------------
1 | # Description of conformance tests
2 |
3 | This folder contains the Test Suite.
4 | For each test, there should be a corresponding requirement in the "requirements" folder.
5 |
--------------------------------------------------------------------------------
/src/main/metanorma/tests/class_core.adoc:
--------------------------------------------------------------------------------
1 | [[tests_class_core]]
2 | [conformance_class_core]
3 | ====
4 | [%metadata]
5 | label:: http://www.opengis.net/spec/geoapi/{edition}/conf/core
6 | subject:: Requirements Class "Core"
7 | classification:: Target Type: library
8 | ====
9 |
10 | ==== Test signature
11 |
12 | include::test_signatures.adoc[]
13 |
14 | ==== Test behavior
15 |
16 | include::test_invariants.adoc[]
17 |
--------------------------------------------------------------------------------
/src/main/metanorma/tests/test_invariants.adoc:
--------------------------------------------------------------------------------
1 | [[test-invariants]]
2 | [abstract_test]
3 | ====
4 | [%metadata]
5 | label:: /conf/core/api-definition
6 | subject:: /req/req-class-lib/req-invariants
7 | test-purpose:: Verify that all methods behave as specified.
8 |
9 | [.component,class=test method]
10 | =====
11 | [.component,class=step]
12 | --
13 | #TODO: describes how to use validators.#
14 | --
15 |
16 | [.component,class=step]
17 | --
18 | All the instances of GeoAPI interfaces shall be valid according to the test validator,
19 | whenever a validator exists for the instance type.
20 | This does not require that all instances be tested but merely that if the instances were tested,
21 | they would validate.
22 | --
23 | =====
24 | ====
25 |
--------------------------------------------------------------------------------
/src/main/metanorma/tests/test_signatures.adoc:
--------------------------------------------------------------------------------
1 | [[test-signatures]]
2 | [abstract_test]
3 | ====
4 | [%metadata]
5 | label:: /conf/core/api-definition
6 | subject:: /req/req-class-lib/req-signatures
7 | test-purpose:: Verify that all types and properties in OGC namespace are as published.
8 |
9 | [.component,class=test method]
10 | =====
11 | [.component,class=step]
12 | --
13 | #TODO: write a Java program verifying signature of all classes and methods in the `org.opengis` namespace.
14 | This verification would be done for the "libraries" target type only, not the "applications" target type.#
15 | --
16 | =====
17 | ====
18 |
--------------------------------------------------------------------------------
/src/main/python/MANIFEST.in:
--------------------------------------------------------------------------------
1 | include setup.py
2 |
--------------------------------------------------------------------------------
/src/main/python/README.md:
--------------------------------------------------------------------------------
1 | # GeoAPI for python
2 |
3 | This Python module offers implementation-neutral interfaces for OGC/ISO standards.
4 | These interfaces can be implemented by wrappers around libraries, not necessarily
5 | in Python. A wrapper around the Java implementations of GeoAPI is provided.
6 |
7 |
8 | ## Installation
9 |
10 | If any version of this package has been installed before,
11 | it should be uninstalled first by the `pip uninstall` command.
12 | Uninstallation and installation commands need to be run as administrator, which is done by `sudo`:
13 |
14 | ```
15 | # Skip next line if GeoAPI has not been previously installed.
16 | sudo pip uninstall geoapi
17 | sudo pip install geoapi-.tar.gz
18 | ```
19 |
--------------------------------------------------------------------------------
/tools/src/main/bash/README.md:
--------------------------------------------------------------------------------
1 | Unix shell scripts for building some GeoAPI artifacts that are too difficult to build with Maven.
2 | Only Unix `bash` is supported.
3 |
--------------------------------------------------------------------------------
/tools/src/main/bash/update_all.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | #
3 | # Update the copyright years of all files in the git repository.
4 | # This script searches Java and Python files recursively from the
5 | # current directory at the time this script is invoked.
6 | #
7 | set -o errexit
8 | SCRIPT_DIR=`dirname "$0"`
9 | find -type f \( -name "*.java" -o -name "*.py" \) -exec $SCRIPT_DIR/update_copyright_years.sh '{}' \;
10 |
--------------------------------------------------------------------------------
/tools/src/main/java/module-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2017-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | /**
20 | * Javadoc taglets and annotation processing tools for processing GeoAPI after compilation.
21 | * Those tools are used mostly for javadoc generation.
22 | * Some services offered by this module are:
23 | *
24 | *
25 | * Generating API index page:
26 | * A summary of all types and members can be generated by the
27 | * {@link org.opengis.tools.apt.IndexGenerator} processor.
28 | * Documenting a summary of API changes:
29 | * A summary of API changes can be generated by the
30 | * {@link org.opengis.tools.version.ChangeReport} class.
31 | *
32 | *
33 | * Usage instructions from command-line are in the
34 | * README.md file.
35 | *
36 | * @author Martin Desruisseaux (Geomatys)
37 | * @version 4.0
38 | * @since 3.0
39 | */
40 | module org.opengis.geoapi.build {
41 | requires jdk.javadoc;
42 | }
43 |
--------------------------------------------------------------------------------
/tools/src/main/java/org/opengis/tools/apt/UMLMember.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2014-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 | package org.opengis.tools.apt;
19 |
20 |
21 | /**
22 | * Members of the {@link org.opengis.annotation.UML} annotation.
23 | *
24 | * @author Martin Desruisseaux (Geomatys)
25 | * @version 3.1
26 | * @since 3.1
27 | */
28 | enum UMLMember {
29 | /**
30 | * {@code identifier()}.
31 | */
32 | IDENTIFIER("identifier"),
33 |
34 | /**
35 | * {@code specification()}.
36 | */
37 | SPECIFICATION("specification"),
38 |
39 | /**
40 | * {@code version()}.
41 | */
42 | VERSION("version");
43 |
44 | /**
45 | * The member name.
46 | */
47 | final String methodName;
48 |
49 | /**
50 | * Creates a new enumeration for the given member name.
51 | */
52 | private UMLMember(final String methodName) {
53 | this.methodName = methodName;
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/tools/src/main/java/org/opengis/tools/apt/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2009-2024 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 | /**
20 | * Annotation processing tools for processing GeoAPI after compilation. Those tools are
21 | * used mostly for javadoc generation. They are not part of normal GeoAPI distributions.
22 | *
23 | * The {@link org.opengis.tools.apt.IndexGenerator} processor is used for regenerating
24 | * the {@code src/main/javadoc/content.html} file.
25 | *
26 | * @author Martin Desruisseaux (Geomatys)
27 | * @version 3.1
28 | * @since 2.0
29 | */
30 | package org.opengis.tools.apt;
31 |
--------------------------------------------------------------------------------
/tools/src/main/java/org/opengis/tools/doclet/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2014-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 |
20 | /**
21 | * Doclet that modify the behavior of some standard options, together with
22 | * Javadoc taglets for processing custom tags in GeoAPI source code comments.
23 | *
24 | * @author Martin Desruisseaux (Geomatys)
25 | * @since 3.1
26 | * @version 3.1
27 | */
28 | package org.opengis.tools.doclet;
29 |
--------------------------------------------------------------------------------
/tools/src/main/java/org/opengis/tools/version/package-info.java:
--------------------------------------------------------------------------------
1 | /*
2 | * GeoAPI - Java interfaces for OGC/ISO standards
3 | * Copyright © 2012-2023 Open Geospatial Consortium, Inc.
4 | * http://www.geoapi.org
5 | *
6 | * Licensed under the Apache License, Version 2.0 (the "License");
7 | * you may not use this file except in compliance with the License.
8 | * You may obtain a copy of the License at
9 | *
10 | * http://www.apache.org/licenses/LICENSE-2.0
11 | *
12 | * Unless required by applicable law or agreed to in writing, software
13 | * distributed under the License is distributed on an "AS IS" BASIS,
14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | * See the License for the specific language governing permissions and
16 | * limitations under the License.
17 | */
18 |
19 |
20 | /**
21 | * Tools for management of various GeoAPI versions.
22 | * The following tools can be executed from the command line:
23 | *
24 | *
25 | * {@link org.opengis.tools.version.ChangeReport} produces a HTML page summarizing the
26 | * API differences between two GeoAPI JAR files. This is used during release processes
27 | * in order to document the list of changes.
28 | *
29 | *
30 | * @author Martin Desruisseaux (Geomatys)
31 | * @version 3.1
32 | * @since 3.1
33 | */
34 | package org.opengis.tools.version;
35 |
--------------------------------------------------------------------------------