Interface | Description |
---|---|
Association |
Extension of Property to represent an Association, or relationship, between two attributes.
|
Attribute |
An extension of Property for an attribute, or data.
|
ComplexAttribute |
An instance of
ComplexType which is composed of other properties. |
Feature |
An instance of
FeatureType representing a geographic feature composed of geometric and
non-geometric properties. |
FeatureFactory |
Factory for creation of attributes, associations, and features.
|
FeatureVisitor |
FeatureVisitor interface to allow for container optimised traversal.
|
GeometryAttribute |
An attribute which has a geometric value.
|
Property |
Exception | Description |
---|---|
BackingStoreException |
Thrown to indicate that a
FeatureCollection operation could not complete because of a
failure in the backing store, or a failure to contact the backing store. |
IllegalAttributeException |
Indicates a validation check has failed; the provided descriptor and value are available via this
exception.
|
The contents of this package form a feature model in accordance with the ideas expressed in the ISO 19107, as captured in the OGC Reference Model, GML3 and related specifications.
A FeatureType represents this information in PropertyDescriptors as follows:
You can represent this significance by making a "dictionary" of your names, in rare cases you can find a formal dictionary defined by an organisation. The idea of group names into a dictionary is represented by the concept of a "Namespace". A "Namespace" used to organise the names of your FeatureTypes is called a "Schema". Please note that "Schema" and "Namespace" above are strictly referring to spatial data. This gets especially confusing when working with spatial data in a web application - since the w3c XML technologies use similar language to describe their ideas.
Traditionally the Java programming language represents dynamic data structures using java.util.Map, you could think of a Feature as a java.util.Map in which the keys (ie attribute descriptors) are well defined.
If two Features have the same set of keys they are considered to be of the same FeatureType. A FeatureType is simply a list of valid attribute descriptors. You have the same kind of ability to represent your model with FeatureType as your do with Java class, inheritance is supported (ie superType) as is aggregation (your attributes can be Features).
Records are most often used as the result of an Operation. For the a Coverage (which is a kind of Feature) a operation is defined to "sample" a specific location, the information returned as part of this sample is a Record.
A Simple feature is a Feature with the following additional requirements:
There is evidence that this need is present in other contexts, GML 3 has been simplified to a "Simple Feature" profile operating with similar restrictions to the ones indicated above.
Our {filter} constructs are used to partition values into sets. We have deliberately defined Filter to work on more than just Feature instances, allowing us to use these ideas to capture restrictions on individual attribute values. Filter should be viewed as our query or constraint system.
Closely related to the concept of constraints is one of identity, it is difficult to think of identification as a topic apart from the definition of a feature as a representation of a real world entity. In actual fact identity is related to the the definition of a Filter, a name is just another way of separating out a partition of values, the set in this case happens to be a set of one.
The concept of Identity is a troublesome one, our model supports the concept of "feature id". In the General OGC reference model the identification of a feature is intended to be unqiue and specific to the real world entity being modeled (regardless of the particular set of attribute you are using to describe in the current context).
As an example you may wish to model a roadway with pavement type and history of repair when looking at a budget for the coming year, the same road may be modelled in the future with a collection of possible routes when planning for over a ten year period. The "road" should be the same in both situations, and have the same id.
It is very difficult to be diligent with the concept of ID, GML3 for example only restricts an ID to be unique within the scope of a single document. I would suggestion you chose a stable source of identification, in the example above it would facilitate "joining" both datasets to predict repair costs for each of the proposed routes.
Copyright © 1996–2019 Geotools. All rights reserved.