ESRIのFileGeo(ファイルジオ)データベースをAPIでいじってみた2012年10月16日 20時13分27秒

ArcGISの進化系というか最近流行?のFileGEO DataBase(ファイルジオデータベース)ですが、ESRIからAPIが公開されていたので少しいじってみました。
実はジオデータベースの種類としては2種類あります。

1つはFileGEO(ファイルジオ)データベースファイルで拡張子がgdbで、格納容量に制限がなくベクトルの 他にラスターも埋め込めます。
もう1つはPersonalGEO(パーソナルジオ)データベースで、
拡張子がmdb(つまりAccessデータベース)になり、
ファイル制限が2GBになります。

今回は面白そうなので、FileGEO(ファイルジオ)の方にしました。

ただ、ESRIから公開されているAPIは私の嫌いなVisualStudio用と、まぁまぁ好きなLinux用、そして身近なMacOSX用がありましたので、今回は環境も整っているMacOSX用を使い、コンパイル環境としてGCC4.2、そして統合開発環境としてAndroidアプリ開発でおなじみのEcripse(JUNO)を使いました。

※Ecripseでコーディングしたところ

基本的にはlibFileGDBAPI.dylibというライブラリにアクセスする事でジオデータベースへの読み書きを行います。
(これはWindowsで言う所のDLL(ダイナミックリンクライブラリ)です)
MacOSXはベースがdarwinというBSD系のUNIX環境ですのでUNIX経験者であればそれらしく使えます。
もちろんライブラリを組み込まないと行けませんが。

※FileGeo(ファイルジオ)データベースのシェープファイルにアクセスしたところ

上の画像サンプルは緯度経度が表示されているのですが、これを図形化するには平面直角座標に変換してOpenGLのGLUTなどを使い、Canvas展開すればそれらしいGISシステムになると思います。スピードも速い感じがしてますが、どちらかというとアプリやシステム化というよりは、最終納品形式がファイルジオ形式だったとしたときに、ArcGISでちまちま手作業でシェープファイル集めて仕上げてやるような事よりもこれらのAPIを使い一括でやる方が良い気がしました。


ちなみに、またいつかDelphiとかでも使う可能性があったのでとりあえず、Embacadero(旧Borland)のimplibユーティリティコマンドでVisulalStudio2010のDLLを処理してみたら330 個程の関数が使われているようでした。さーっと見てみるとGetGeometryTypeとかがあるのでトポロジー系の処理もこれでいけるんでしょうか。もう少し研究が必要なようです。

とりあえず、まだ誰もやってないみたいなので、やってみました報告でした。
そのうち、MicroStationやその他のGIS系アプリケーションからダイレクトで読み書き できるようにしてみたいと思います。