D Spatial and GraphへのESRIシェープファイルのロード
Javaシェープファイル・コンバータは、Oracle Spatial and GraphおよびLocatorで使用するために、ESRIシェープファイルをOracle Database表に変換します。
シェープファイル・コンバータは、Oracle Spatial and GraphのJavaベースのシェープファイル・クラスであるAdapterShapefileJGeom
とSampleShapefileToJGeomFeature
を使用して、シェープファイルを直接データベース表にロードします(属性列にはOracleと同等の.dbf
データ型を、ジオメトリ列にはSDO_GEOMETRYデータ型を使用します)。
シェープファイルをデータベースにロードするには、この付録で説明するとおりにコンバータを使用します。(Adapter
クラスを使用して、シェープファイルをSDO_GEOMETRYデータ型またはJGeometryデータ型に変換する独自のアプリケーションとインタフェースを作成することもできますが、この処理は、このマニュアルの範囲を超えています。シェープファイル関連のクラスについては、Oracle Spatial and GraphのJava APIリファレンスを参照してください。)
シェープファイル・コンバータを使用するには、次が必要です。
-
OracleユーティリティおよびJDBCライブラリ(
ojdbc14.jar
またはojdbc5.jar
、sdoutl.jar
およびsdoapi.jar
) -
変換する1つ以上のESRIシェープファイル(
.shp
ファイル、.shx
ファイルおよび.dbf
ファイル)
D.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回の変換ごとに表示)
親トピック: GraphへのESRIシェープファイルのロード
D.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
親トピック: GraphへのESRIシェープファイルのロード