The Feature Data Objects API provides a generic, command-based interface to a number of back-end data source technologies for storing, retrieving, updating, and analyzing GIS (Geographic Information System) data.
FDO provides a model for extending its interface to additional data source technologies. The generic API is extensible, and it is possible to add custom commands to a particular provider. A provider is a specific implementation of the FDO API that provides access to data stored in a particular data source technology. For example, the OSGeo FDO Provider for MySQL provides access to GIS data stored in a MySQL database, and the OSGeo FDO Provider for SHP provides access to GIS data stored in a SHP file. The extent to which a provider implements the FDO API is limited by the native capabilities of the underlying data source technology.
A client application creates a connection to a provider and then uses the connection object to create command objects for FDO actions such as Select. The client uses the command object to set the command parameters with the option of leaving some parameters with default values. Where appropriate such as in the case of Select, execution of the command returns a reader object containing the results of the command.
A client application can use the FDO Capabilities API to determine what services a particular provider offers. For example, the OSGeo FDO Provider for SDF supports the insertion of data, and the OSGeo FDO Provider for WMS does not.
The storage of FDO feature data can be modeled as a containment hierarchy.
- A data source may contain one or more data stores.
- A data store may contain one or more feature schemas and one or more spatial contexts.
- A feature schema may contain one or more features classes.
- A feature class contains a feature geometry, optionally one or more non-feature geometry properties, and optionally other types of properties.
A geometry is represented using geometric constructs either defined as lists of one or more XY or XYZ points or defined parametrically, for example, as a circular arc. While geometry typically is two- or three-dimensional, it may also contain the measurement dimension (M) to provide the basis for dynamic segments. FDO Geometry is based on the OpenGIS Simple Features Implementation Specification for SQL (version 1.1, document 99-049), but is extended to include z and measure dimensions and circular arcs.
A schema is a logical description of the data types used to model real-world objects. A schema is not the actual data instances (that is, not a particular road or land parcel), rather it is metadata. A schema is a model of the types of data that would be found in a data store. FDO feature schemas can be written to an XML file. The FDO XML format for schema is based on the Open GIS Consortium Geography Markup Language (version 2.1.1, document 02-009). The schema model is object-based using classes and properties and is independent of any physical storage format.