GISオラクルへの空間データの収容1ご存知の方も多いかと思いますが、多くのRDBMSには点や線、面などの幾何的なデータを座標系(空間参照系)を付与して収容できます。ネット上ではPostGISの事例が多く紹介されていますが、オラクルでも可能です。今回は、シェープファイルをオラクルデータベースに収容する方法ご紹介したいと思います。作業内容の確認と必要物件のダウンロード今回は、オラクル社の提供するMapBuilderを使ってシェープファイルをオラクルデータに変換します。MapBuilderは、実行可能なjarファイルの形式で提供されます。シェープファイルは、国勢調査の小地域を使用します。必要物件をダウンロードしましょう。国勢調査の小地域データのダウンロード以前の記事でも取り扱ったことのある2015年版国勢調査の小地域(町丁・字等別)データを使用します。ダウンロードは、こちらから行います。以下の画面が表示されますので、東京都全域を指定します。データの仕様を以下に列挙します。選択したデータデータ形式はシェープファイルを選択(KMLなどもあり)データの範囲は東京全域を選択(島しょ部を含む)座標系は世界測地系の緯度経度を選択(平面直角もあり)オラクルMapBuilderのダウンロード次に、MapBuilderをダウンロードします。ダウンロードは、ここから行います。オラクルのアカウント(無料)が必要ですので、登録してください。以下の手順で行います。MapBuilderの起動オラクルデータベースへの接続シェープファイルの指定と登録の実行データの確認1.MapBuilderの起動ダウンロードしたMapBuilderの.zipファイルを解凍し、下記ファイルをダブルクリックして実行します。map_builder-12.2.1.3.0.jar起動が成功すると、下記画面が表示されます。失敗する場合は、Java(JRE)が導入されていない可能性が高いので、別途導入してください。2.オラクルデータベースへの接続[ファイル]、[新規接続]を指定しすると、データベース接続先を求める画面が表示されますので、接続情報を入力し、”接続のテスト”ボタンを押下すると接続のテストが行われます。成功した状態が下記画面となります。”接続の追加”画面のOKボタンを押下するとデータベースへ接続します。3.シェープファイルの指定と登録の実行オラクル接続に成功したら、ダウンロードしたシェープファイル(国勢調査の小地域)を読み込みます。[ツール]、[シェープファイルのインポート]を選択するとインポート用のウィザード画面が表示されます。インポートの初期画面[ツール]、[シェープファイルのインポート]を選択するとこの画面が表示されます。次に、インポートするシェープファイルを指定します。座標のカラムは、デフォルトでgeometryとなっています。座標系(EPSGコード)を指定します。Identifier)と呼びますが、値はEPSGコードと同じです。今回のデータの座標系は、JGD2000ですので、4612を指定します。4.定義済みのパラメータ不明です。スルーして問題ありません。5.Summary画面これまでに指定したパラメータが表示されますので、”終了”ボタンを押下します。6.変換の実行これで変換が実行されます。今回のデータは6,010件ですが、約5分で終了します。(ネットワークやサーバーの性能によります)以上でシェープファイルをオラクルデータベース上のテーブルとして取り込みが完了しました。取り込みが完了したところで動作確認していきましょう。今回は、SQL*Plusにて確認を行います。取り込みにより作成されたデータベースオブジェクトの確認です。SQL*Plusにて、以下のコマンドを実行していきます。SIDX_KOKUSEI最初のSQLでテーブルKOKUSEIが確認できました。次にデータ件数、その次がKOKUSEIテーブルのカラムの確認です。カラム数が多いため割愛していますが、GEOMETRYという型に空間情報が収容されます。最後のSQLは、索引名の確認ですが、SIDX_KOKUSEIという空間索引が作成されています。これらの意味は、次回以降解説しますが、今回は”空間データがうまく収容された”とご理解ください。次に、特定場所の住所を検索(逆ジオコーディング)してみましょう。今回のデータでは、番地や号までは検索できませんが、町・丁目までの検索ができます。次に、先ほどのSQLを副問い合わせにして周辺のポリゴンを検索します。SQL的には、sdo_touch関数にて辺の接するレコードを取得します。中央区八重洲2丁目8行が選択されました。OpenJUMPのプラグインである”DBQuery”を使って上記SQLを発行し地図表示させると以下のようになります。まとめ今回は、シェープファイルをオラクルに取り込む方法を説明しました。MapBuilderを使えば、お手軽に取り込むことができました。次回以降は、SQL*LoaderやQGISを使った取り込み方法もご紹介します。今回使用したSQLや空間演算子などの詳細も次回以降説明します。(参考)OpenJUMP本当はQGISで行いたかったのですが、私の環境ではオラクル接続が動作しないため仕事でよく使っているOpenJUMP(OSS)を使って確認します。Solutionsという会社が開発していました。特徴は、QGISに比べて動作が軽い点と、すべてJavaで作られている点だと思います。FORGEで公開されていて、現在の最新バージョンは1.14.1-r6147(2019.3.14)です。画面は以下のような感じです。technology.MENU。