国土交通省・位置参照情報ダウンロードサービスを用いて 「街区レベル位置参照情報 国土交通省、大字・町丁目位置参照情報 国土交通省」のデータをダウンロード. SQLite3 に投入する(テーブル定義,CSV データを読み込んで SQLite3 に投入.その後確認表示)
国土交通省・位置参照情報ダウンロードサービスのページ: http://nlftp.mlit.go.jp/isj/index.html
下図では「市町村単位」をクリックしている.
#!/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
大字・町丁目のレベルと,街区のレベルを扱うために,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