C Spatial and GraphへのESRIシェイプファイルのロード

Javaシェイプファイル・コンバータは、Oracle Spatial and Graphで使用するために、ESRIシェイプファイルをOracle Database表に変換します。

シェイプファイル・コンバータは、Oracle Spatial and GraphのJavaベースのシェイプファイル・クラスであるAdapterShapefileJGeomSampleShapefileToJGeomFeatureを使用して、シェイプファイルを直接データベース表にロードします(属性列にはOracleと同等の.dbfデータ型を、ジオメトリ列にはSDO_GEOMETRYデータ型を使用します)。

シェイプファイルをデータベースにロードするには、この付録で説明するとおりにコンバータを使用します。(Adapterクラスを使用して、シェイプファイルをSDO_GEOMETRYデータ型またはJGeometryデータ型に変換する独自のアプリケーションとインタフェースを作成することもできますが、この処理は、このマニュアルの範囲を超えています。シェイプファイル関連のクラスについては、Oracle Spatial and GraphのJava APIリファレンスを参照してください。)

シェイプファイル・コンバータを使用するには、次が必要です。

  • OracleユーティリティおよびJDBCライブラリ(ojdbc14.jarまたはojdbc5.jarsdoutl.jarおよびsdoapi.jar)

  • 変換する1つ以上のESRIシェイプファイル(.shpファイル、.shxファイルおよび.dbfファイル)

C.1 シェイプファイル・コンバータの使用方法

シェイプファイル・コンバータの構文を次に示します。(コマンドはすべて1行に入力します。)

> java -cp [ORACLE_HOME]/jdbc/lib/ojdbc5.jar:[ORACLE_HOME]/md/jlib/sdoutl.jar:[ORACLE_HOME]/md/jlib/sdoapi.jar oracle.spatial.util.SampleShapefileToJGeomFeature -h db_host -p db_port -s db_sid|-sn db_service_name -u db_username -d db_password -t db_table -f shapefile_name [-r srid] [-i table_id_column_name][-n start_id] [-g db_geometry_column] [-x max_x,min_x] [-y max_y,min_y] [-o tolerance] [-k keyword_table] [-a append][-c commit_int] [-v println_int]

パラメータ

-h: 既存のOracle Databaseがあるホスト・マシン

-p: ホスト・マシンのポート(1521など)

-s: ホスト・マシンのSID (データベース名)

-sn: ホスト・マシンのサービス名(-snを使用する場合、-sを指定しないでください)

-u: データベース・ユーザー

-d: データベース・ユーザーのパスワード

-t: 変換済シェイプファイルの表名

-f: 入力シェイプファイルのファイル名(拡張子の有無を問わない)

-r: 座標系の有効なOracle SRID (不明の場合は0を使用)

-i: 一意の数値IDの列名(必要な場合)

-n: -iパラメータで指定した列の開始ID

-g: 優先させるSDO_GEOMETRY列名

-x: X次元の境界(不明の場合は-180,180を使用)

-y: Y次元の境界(不明の場合は-90,90を使用)

-o: メタデータのロード許容差フィールド(xおよびy) (指定しない場合、許容差フィールドは0.05)

-k: KEYWORDという名前の列にOracle予約語を含む表名

-a: 既存の表へのシェイプファイル・データの追加

-c: コミット間隔(デフォルトでは、1000回の変換ごとおよび最後にコミットが発生)

-v: Println間隔(デフォルトでは、10回の変換ごとに表示)

C.2 シェイプファイル・コンバータの例

次の例では、シェイプファイル・コンバータを使用して、shapes.shpという名前のファイルを、geomという名前のSDO_GEOMETRY列を含むshapesという名前の表に変換します。経度/緯度(WGS 84)座標系のSRIDが使用されます(8307)。

Linuxの例

> setenv clpath $ORACLE_HOME/jdbc/lib/ojdbc5.jar:$ORACLE_HOME/md/jlib/sdoutl.jar:$ORACLE_HOME/md/jlib/sdoapi.jar
> java -cp $clpath oracle.spatial.util.SampleShapefileToJGeomFeature -h gis01 -p 1521 -s orcl -u scott -d <password-for-scott> -t shapes -f shapes.shp -r 8307 -g geom

Windowsの例

> java -classpath %ORACLE_HOME%\jdbc\lib\ojdbc5.jar;%ORACLE_HOME%\md\jlib\sdoutl.jar;%ORACLE_HOME%\md\jlib\sdoapi.jar oracle.spatial.util.SampleShapefileToJGeomFeature -h gis01 -p 1521 -s orcl -u scott -d <password-for-scott> -t shapes -f shapes.shp -r 8307 -g geom