金子邦彦研究室3次元,地図地図データ国土交通省・位置参照情報ダウンロードサービスのデータ(Ubuntu を使用)

国土交通省・位置参照情報ダウンロードサービスのデータ(Ubuntu を使用)

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

[image]

国土交通省・位置参照情報ダウンロードサービスのページ: http://nlftp.mlit.go.jp/isj/index.html

国土交通省・位置参照情報ダウンロードサービスによるダウンロード

  1. 国土交通省・位置参照情報ダウンロードサービスのページを開く

    http://nlftp.mlit.go.jp/isj/index.html

  2. 注意事項を確認の上,「位置参照情報ダウンロードサービスへ」をクリック.

    [image]
  3. ダウンロード方式を選択する.

    下図では「市町村単位」をクリックしている.

    [image]
  4. 地図を使用して,県を選択

    [image]
  5. ダウンロードしたい市町村をチェックし,「選択」をクリック

    [image]
  6. ダウンロードしたいファイルをチェックし,「選択」をクリック

    [image]
  7. 利用規約の確認

    [image]
  8. ダウンロード」をクリック

    [image]
  9. アンケートに協力する

    [image]
  10. ダウンロードが始まる.ファイル名を確認しておく.

    [image]
  11. 複数の 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
    
    [image]

テーブル定義とテーブルの作成(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

[image]

テーブルの作成

#!/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

[image]