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系アプリケーションからダイレクトで読み書き
できるようにしてみたいと思います。
最近のコメント