GISオラクルへの空間データの収容2今回は、オラクルへの空間データの収容方法の第二回目として、街区レベル位置参照情報をオラクルに収容してみたいと思います。街区レベル位置参照情報とは街区レベル位置参照情報は、国土交通省が公開している街区レベルまでの位置情報を示したデータで、全国を網羅しており、以下のように説明されています。)を整備したデータです。このデータを利用することで、住所などを含む表や台帳データに位置座標(緯度経度等)を付け、GISで地図上に展開して空間的な分析をすることができるようになります。位置参照情報ダウンロードサービスのホームページより引用オラクルへ収容する流れオラクルにデータを収容するまでの流れを以下に示します。1.データのダウンロードデータは、下記URLからダウンロードします。今回は東京都のデータを使います。座標点を収容できるオラクルテーブルを作成します。同時にSRID(空間参照情報、EPSGと同じ値)や座標範囲などを示すメタデータを作成します。今回は、SQL*LoaderにてCSVファイルから直接テーブルにロードします。SQL*Loaderには、CSVファイルとテーブルの対応やロード方法を示す制御ファイルが必要です。以下に今回の制御ファイルの内容を示します。filler,status)4.SQL*Loaderの実行コマンドラインからSQL*Loaderを実行します。ClientのToolsに含まれています。コマンドの実行イメージは、以下の通りです。今回の約27万件は5分程度でロードできます。行は正常にロードされました。確認するログ・ファイル:gaiku.logロードの詳細を参照してください。5.空間索引の作成ロードしたデータは、SDO_GEOMETRYオブジェクト型に座標が収容されている状態です。このままでは空間演算(範囲内検索とか領域のANDとか)を使用できません。以下のSQLで空間索引を作成することで、空間演算が実施できるようになります。MDSYS.SPATIAL_INDEX;動作確認では、動作確認を実施しましょう。ある点から近い順に5件の街区を検索してみましょう。以下のSQLになります。dist;SDO_NN関数で該当点の近隣レコードを検索し、sdo_nn_distance関数にて距離を表示します。status<>3は、廃止レコードを省くための条件です。実行結果は以下になります。253.928303430044上記SQLを、先日ご紹介したOpenJUMPにて表示した結果が以下になります。黒文字の住所が街区、赤文字がポリゴンの属性である字名になります。丸数字が検索された順番を示しており、検索結果が正しそうなことが確認できます。実務で逆ジオコーダを実装する場合は、ポリゴンの中だけから検索する例もあります。まとめここまで、街区レベル位置参照情報をダウンロードしSQL*PlusとSQL*Loaderを使ってオラクルデータ化し検索までを行いました。号レベルまでの住所データ(今回は街区レベルなので、番レベル)があれば、本格的なジオコーダが作成できますが、番レベルまででよければ今回使ったデータでジオコーダ(住所名や住所コードから位置検索)、逆ジオコーダ(位置から住所検索)ができます。technology.MENU。