The FDO API provides a generic interface to a number of back-end data source technologies for storing, retrieving, and updating GIS (Geographic Information System) data.
FDO provides a model for extending this 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 specifc implementation of the FDO API that provides access to date stored in a particular data source technology. For example, the MySQL provider provides access to GIS data stored in an 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 schema and one or more spatial contexts.
- A feature schema may contain one or more feature classes.
- A feature class contains a feature geometry property, 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 OpenGIS 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.
The API is available in two formats, enterprise and open source, on two platforms, Windows and Linux. The enterprise version of the API contains all of the open source components plus some proprietary components. The enterprise version of this document describes both open source and proprietary components. The open source version of this document describes only the open source components.
The enterprise edition is released as part of the Autodesk Map 3D and Autodesk MapGuide Enterprise products. The FDO API is not exposed in these products.
The open source edition is released as source code which may be downloaded from the Open Source Geospatial Foundation website (http://www.osgeo.org) in the form of gzipped tarfiles or directly from Subversion repositories. The project name is Fdo. The project documentation includes a document about how to build and install the Fdo software from source on both platforms.