概要
フィーチャ・データ・オブジェクトAPIは、多数のバック・エンド・データソース・テクノロジーに対し、GIS(地理情報システムGeographic Information System)データの保存、読み出し、アップデートや分析のための一般的なコマンド・ベースのインターフェースを提供しています。
FDOはそのインタフェースを追加のデータ・ソース・テクノロジーに拡張できるモデルを提供しています。
一般的なAPIは拡張可能で、特定のプロバイダへカスタム・コマンドを追加することができます。
プロバイダとは、特定のデータ・ソース・テクノロジー内に保存されているデータへのアクセスを可能にする、FDO APIの個別のインプリメンテーションのことです。
例えば、OSGeo FDO Provider for MySQLはMySQLデータベース内に保存されているGISデータへのアクセスを可能にし、OSGeo FDO Provider for SHPはシェープファイルの中に保存されているGISデータへのアクセスを可能にします。プロバイダがFDO APIを実装する範囲は、データ・ソース・テクノロジーのを構成するもともとの能力によって制限があります。
クライアント・アプリケーションはプロバイダへの接続を確立し、その後「Select」のようなFDOアクション用のコマンドオブジェクトを作成するために接続オブジェクトを使います。
クライアントは、デフォルトの値にいくつかのパラメータを残すオプションを用いてコマンドパラメータを設定する目的で、コマンドオブジェクトを使用します。
コマンドの実行は、「Select」の場合のように、適切なところでコマンドの結果を含んでいるリーダ・オブジェクトを返します。
クライアント・アプリケーションは特定のプロバイダが何のサービスを提供しているのかを判別するために、FDO Capabilities APIを使用することができます。
例えば、OSGeo FDO Provider for SDFはデータの挿入をサポートしていますが、OSGeoFDO Provider for WMSはサポートしていません。
FDO・フィーチャ・データのストレージは包含階層としてモデル化することができます。
- データ・ソースには1つ以上のデータ・ストアを含むことができます。
- データ・ストアには1つ以上のフィーチャ・スキーマと、1つ以上の空間のコンテキストを含むことができます。
- フィーチャ・スキーマには1つ以上のフィーチャ・クラスを含むことができます。
- フィーチャ・クラスにはフィーチャ・ジオメトリや、フィーチャ・ジオメトリではない1つ以上の任意のプロパティや、他の任意のタイプのプロパティを含むことができます。
ジオメトリは、1つ以上のXYまたはXYZポイントのリストとして定義されるか、パラメータ的に定義(例えば円弧)されるかどちらか一方のジオメトリック構造を使って表現されます。ジオメトリは通常2次元か3次元である間、動的セグメントの基礎を提供する次元測定(M)を含むことができます。FDOジオメトリはOpen GIS Simple Features Implementation Specification for SQL(バージョン1.1,ドキュメント番号99-049)に基づいていますが、zや次元測定、および円弧を含むよう拡張されています。
スキーマは現実世界のオブジェクトをモデル化するために使用されるデータ・タイプの論理的な説明です。
スキーマは実在するデータ・インスタンスではなく(つまり、特定の道や土地の一区画ではない)、むしろメタデータです。スキーマはデータ・ストア内で見つけられるデータのタイプのモデルです。FDOフィーチャ・スキーマはXMLファイルに書くことができます。スキーマ用のFDO XMLフォーマットはOpen GIS COnsortium Geography Markup Language(version 2.1.1, ドキュメント番号:02-009)に基づいています。
スキーマ・モデルは、他の物理的なストレージ・フォーマットに依存しないクラスとプロパティを使用した、オブジェクトベースのモデルです。