国土交通省・位置参照情報ダウンロードサービスのデータ(Ubuntu を使用)
国土交通省・位置参照情報ダウンロードサービスを用いて 「街区レベル位置参照情報 国土交通省、大字・町丁目位置参照情報 国土交通省」のデータをダウンロード. SQLite3 に投入する(テーブル定義,CSV データを読み込んで SQLite3 に投入.その後確認表示)

国土交通省・位置参照情報ダウンロードサービスのページ: http://nlftp.mlit.go.jp/isj/index.html
国土交通省・位置参照情報ダウンロードサービスによるダウンロード
- 国土交通省・位置参照情報ダウンロードサービスのページを開く
- 注意事項を確認の上,「位置参照情報ダウンロードサービスへ」をクリック.
- ダウンロード方式を選択する.
下図では「市町村単位」をクリックしている.
- 地図を使用して,県を選択
- ダウンロードしたい市町村をチェックし,「選択」をクリック
- ダウンロードしたいファイルをチェックし,「選択」をクリック
- 利用規約の確認
- 「ダウンロード」をクリック
- アンケートに協力する
- ダウンロードが始まる.ファイル名を確認しておく.
- 複数の zip ファイルをダウンロードしたときは,次のような bash のスクリプトで一度に展開(解凍)できる.
#!/bin/bash downloaddir=/usr/local/isj workingdir=/tmp/isj mkdir ${workingdir} cp ${downloaddir}/*.zip ${workingdir} cd ${workingdir} for i in *.zip; do unzip $i done
テーブル定義とテーブルの作成(Ubuntu,SQLite3 を使用)
使用するソフトウェア
テーブル定義
大字・町丁目のレベルと,街区のレベルを扱うために,2つのテーブルを定義.
テーブル定義の bash プログラム
#!/bin/bash
rm -f /tmp/isjdb
#
cat >/tmp/a.$$.sql <<-SQL
drop table 大字町丁目レベル位置参照情報
SQL
cat /tmp/a.$$.sql | sqlite3 /tmp/isjdb
#
cat >/tmp/a.$$.sql <<-SQL
drop table 街区レベル位置参照情報
SQL
cat /tmp/a.$$.sql | sqlite3 /tmp/isjdb
#
cat >/tmp/a.$$.sql <<-SQL
create table 大字町丁目レベル位置参照情報 (
都道府県コード integer not null,
都道府県名 text,
市区町村コード integer not null,
市区町村名 text,
大字町丁目コード text,
大字町丁目名 text,
緯度 real,
経度 real,
原典資料コード integer,
大字・字・丁目区分コード integer
);
create table 街区レベル位置参照情報 (
都道府県名 text,
市区町村名 text,
大字・丁目名 text,
小字・通称名 text,
街区符号・地番 text,
座標系番号 integer,
X座標 real,
Y座標 real,
緯度 real,
経度 real,
住居表示フラグ integer,
代表フラグ integer,
更新前履歴フラグ integer,
更新後履歴フラグ integer
);
SQL
cat /tmp/a.$$.sql | sqlite3 /tmp/isjdb

テーブルの作成
#!/bin/bash
cat >/tmp/b.$$.sql <<-SQL
.mode csv
.import /tmp/b.$$.csv 大字町丁目レベル位置参照情報
vacuum;
SQL
cat >/tmp/a.$$.sql <<-SQL
.mode csv
.import /tmp/a.$$.csv 街区レベル位置参照情報
vacuum;
SQL
#
workingdir=/tmp/isj
cd ${workingdir}
for i in *-15.0b/*.csv; do
echo $i
tail -n +2 $i | nkf -w > /tmp/b.$$.csv
cat /tmp/b.$$.sql | sqlite3 /tmp/isjdb
done
echo 'select * from 大字町丁目レベル位置参照情報 limit 10;' | sqlite3 /tmp/isjdb
#
for i in *-20.0a/*.csv; do
echo $i
tail -n +2 $i | nkf -w > /tmp/a.$$.csv
cat /tmp/a.$$.sql | sqlite3 /tmp/isjdb
done
echo 'select * from 街区レベル位置参照情報 limit 10;' | sqlite3 /tmp/isjdb
