GISっ子/デイリーポータルZのあの地図を作りたい

地名の最後の一文字だけで地図をつくると地形が見える :: デイリーポータルZ っぽいものを作る手順を考えました

あると好ましい知識

参考教材

作り方

ざっくり手順

  1. 基盤地図情報ダウンロードサービス から(全項目じゃなくて)「市町村の町若しくは字の境界線及び代表点」をお好きな単位でダウンロードします(都道府県くらいがおすすめ)
    01.PNG
     
  2. ダウンロードしたファイル(大抵は複数になると思います)をFGDVで読み込みます
    1. FGDVはここからダウンロード出来ます
      02.PNG
    2. FGDVで新規プロジェクトを作成して先程ダウンロードしたzipファイルを読み込みます
      03.PNG
       
  3. FGDVで読み込んだデータをシェープファイル形式でエクスポートします
    04.PNG
     
  4. QGISでシェープファイル「町字の代表点」を読み込ませ、geojson形式でエクスポートします
    05.PNG
     
  5. JQ等を利用して地名の最後の文字と緯度経度の組み合わせでCSVファイルを作成します
    # QGISで出力したgeojsonファイルを入力にする
    cat ibaraki.geojson                                                                                   |\
    # geojsonファイルから必要なものだけ抽出し、csv形式で出力
    #   行政コード:  あとで茨城県のみ抽出するために使う
    #   coordinates: 町・字レベルの住所の代表点の緯度経度
    #   名称:        町・字レベルの住所
    jq -r '.features[] | [.properties."行政コード", .geometry.coordinates[], .properties."名称"] | @csv' |\
    # ダブルクォーテーションを削除
    tr -d '"'                                                                                            |\
    # 行政コードを利用して特定の都道府県を抽出
    #   茨城: 08 で始まる
    #   埼玉: 11 で始まる
    grep '^08'                                                                                           |\
    # 地名の最後の一文字を作り出す
    # 入力(-F)、出力(-v OFS)ともにカンマ区切りにする
    awk -F, -v OFS=, '
    {
      # 町・字レベル住所を加工するために変数に格納
      a=$NF;
      # 「最後の一文字」に相応しくない文字を消す
      # 例:山本町南五丁目町 -> 「本」より後ろを削除
      # 例:豊田町           -> 「田」より後ろを削除
      # 例:中村             -> 「中」より後ろを削除
      # 例:中村南一丁目     -> 「村」より後ろを削除/いかんともしがたい
      sub(/(町?[東西南北]?[〇一二三四五六七八九十百]+丁目|[町村])$/, "", a)
    }
    # まれに「最後の一文字」が残らない場合があるので、それを除外
    # 例:○○市 北町一丁目 の場合、町・字レベル住所=北町一丁目 となり前段の処理で全て削除される
    $NF{
      # 緯度、経度、町・字レベル住所、最後の一文字 を出力
      print $2,$3,$4,substr(a,length(a))
    }' >filtered.csv # 結果をファイルにリダイレクト
    
  6. QGISでCSVファイルをインポートします
    06.PNG
     
  7. シンボルとラベルを設定します
    1. シンボル(なし)
      07.PNG
    2. ラベル(単一定義)
      08.PNG

おまけ

地理院地図タイル(色別標高図、明治期の低湿地)と組み合わせると面白いです


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-07-27 (月) 11:06:56