行政区を再編した浜松市のポリゴンをMapLibre GL JSを使って地図でじっくり眺める

浜松いいですよね。浜松と言えばうなぎパイが有名ですが、私がおすすめしたいのはうなぎパイを出している春華堂さんです。春華堂はうなぎパイだけじゃなく、他にもいろいろなスイーツを製造、販売しています。どれもおいしそうなんです。そしておいしいんです。駅などのお土産売り場だけではなく春華堂の店舗に行くことをおすすめします。
さて春華堂の話はこれくらいにして、浜松と言えばもう一つあります。

2024年1月1日に浜松市は行政区が7区から3区に変わりました。
行政区が変わってから1年以上経っているので、あまりホットではないぬるま湯くらいの話題感ではありますが、浜松市の行政区の再編を地図でじっくり眺めていきたいと思います。



https://www.city.hamamatsu.shizuoka.jp/kikaku/kuseido/

この記事にある市区町村ポリゴンや町丁目ポリゴンはマップマーケティングのデータを使用しています。

https://www.mapmarketing.co.jp/data/area/chouchoumoku-area.html?grid=qiita&utm_source=qiita.com&utm_medium=referral&utm_campaign=qiita_hamamatsu_4e1d0634074c28e9e752_01
# どう変わった？
まずはこちら。再編前（左）と再編後（右）の浜松市のポリゴンです。
![浜松市_区再編_比較.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2325378/5643249e-c14a-45d4-a796-40f8c4defe8a.png "浜松市の行政区再編前後")
この画像はQGISに新旧の市区町村ポリゴンを表示して作成

## どのように再編されたか
再編前の浜松市は「中区」「東区」「西区」「南区」「北区」「浜北区」「天竜区」の7つの区でした。
再編して「中央区」「浜名区」「天竜区」の3つになりました。下にも説明がありますが、元々の区を単純にくっつけただけではありません。北区は三方原地区が中央区になり、三方原地区以外は浜名区になりました。

### 中央区
中央区は中区、東区、西区、南区の全域と北区の一部（三方原地区）がくっつきました。
三方原地区は初生町、三方原町、東三方町、豊岡町、三幸町、大原町、根洗町です。
平成の大合併前の浜松市に近い形だと思います。合併前の浜松市から都田地区と新都田地区を除いた形が中央区に似ています。

↓平成の大合併前の浜松市
![平成の大合併前の様子.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2325378/b54c9ed5-cf1d-4eb1-a3e3-96386def9af1.png "平成の大合併前の様子")
出典：https://www.city.hamamatsu.shizuoka.jp/shiminkyodo/kaigi/chiikikyougikai/ground/index.html


### 浜名区 
浜名区は三方原地区を除く北区と浜北区がくっつきました。
北区引佐町には竜ヶ岩洞や大河ドラマにもなった井伊直虎ゆかりの地である龍潭寺があります。

### 天竜区
天竜区は変わりありません。

# 浜松市を地図でじっくり眺める
再編前後の浜松市のポリゴンを重ねてみます。
ここから下の画像は新旧の市区町村ポリゴンをベクトルタイルに変換してMapLibreを使って表示させたものです。
中央区と浜名区にズームしたので天竜区は見切れています。（天竜区ファンの皆さんには申し訳ありません🙇‍♂️ここからは三方原地区に注目していきます）
青色の部分が浜松市です。グレーの部分は浜松市以外の市区町村です。ちょっと見づらいですが、ポリゴンラインの実線が再編後の浜松市で点線が再編前の浜松市です。
真ん中くらいにあるカットされたピザのような形をしている部分が三方原地区です。
![再編前後でポリゴンを重ねた図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2325378/5b5d75d2-6c03-4e2d-ad42-33149a9a924e.png "再編前後でポリゴンを重ねた図")


見やすくなるように旧北区の部分のブルーを濃くして、北区三方原地区の町丁目だけ別の色してみます。この三方原地区が中央区になりました。他の部分は浜名区になりました。
![再編前後でポリゴンを重ねて三方原地区を見やすくした図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2325378/ef25db5d-39ec-4632-a878-08fea007d60b.png "再編前後でポリゴンを重ねて三方原地区を見やすくした図")


再編後の浜松市です。
![再編後の浜松市.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2325378/0bd2f8d1-12a4-430b-809c-49705386451d.png "再編後の浜松市")


## 区割りが気になる
三方原地区だけが中央区になった経緯が気になります。パブリックコメントでも北区の区割りについての意見が多いようでした。
浜松市が公開している経緯を見てみると、始めは2区～5区の案があったり区割りも今と異なる案もあったようです。

https://www.city.hamamatsu.shizuoka.jp/ksh/d/kk-2.html

https://www.city.hamamatsu.shizuoka.jp/ksh/d/kk-3.html

> 次に、区の線引きについては、当初の区割り案たたき台13案に含まれる3区案に立ち返るとともに、国土縮図型といわれる本市の多様な地域特性や中間報告でいただいたご意見等を踏まえ、都心部が広がる沿岸部を含む地域である中区、東区、西区、南区、北区の一部をA区、都心部の外環部に当たり、産業と自然環境に恵まれた内陸地域で、地勢、歴史・文化、農業、交通まちづくりに共通項目が多い北区の一部と浜北区をB区、広大な森林面積を有し、地球温暖化対策や水源涵養など多面的な役割を担うC区のまとまりとすることで、地域課題への対応や地域資源を生かした施策が期待できると結論付けられ、区割り案が内定しました。
　区再編決定（区設置等条例議決）までの経緯(3ページ目)より引用


三方原地区は都心部が広がる地域として中央区になったようです。
下の画像は地理院タイルの衛星写真に三方原地区の町丁目ポリゴンを重ねたものです。
![地理院タイル衛星写真.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2325378/434f5150-0b67-4ada-b136-3a663179ee30.png)

出典：地理タイル（https://maps.gsi.go.jp/development/ichiran.html#seamlessphoto）
データソース：Landsat8画像（GSI,TSIC,GEO Grid/AIST）, Landsat8画像（courtesy of the U.S. Geological Survey）, 海底地形（GEBCO）

たしかに初生町や三方原町は南に隣接する中区から連なって住宅が多くあり、都心部が広がる地域として捉えることができそうです。東三方町、豊岡町、三幸町、大原町、根洗町は田畑も多くあるようですが、歴史や地域のつながりなどを考慮して三方原地区として中央区になったものと推測されます。

# いろいろ試したコード
MapLibreで市区町村や町丁目ポリゴン、地理院タイルの衛星画像などを表示させたコードを載せておきます。
市区町村や町丁目ポリゴンを載せることはできませんが、ご興味があればこちらをご確認ください。

https://www.mapmarketing.co.jp/data/area/chouchoumoku-area.html?grid=qiita&utm_source=qiita.com&utm_medium=referral&utm_campaign=qiita_hamamatsu_4e1d0634074c28e9e752_02

```javascript:main.js
import "./style.css";
import maplibregl from "maplibre-gl";
import "maplibre-gl/dist/maplibre-gl.css";

// 再編前の浜松市の市区町村JISコード
// 再編前の浜松市だけに絞り込むのに使う
const oldHamamatsuJISCodes = [
  "22131", // 中区
  "22132", // 東区
  "22133", // 西区
  "22134", // 南区
  "22135", // 北区
  "22136", // 浜北区
  "22137", // 天竜区
];

// 再編後の浜松市の市区町村JISコード
// 再編後の浜松市だけに絞り込むのに使う
const newHamamatsuJISCodes = [
  "22138", // 中央区
  "22139", // 浜名区
  "22140", // 天竜区
];

// 町丁目表示で使うフィルター
// 中央区で且つ三方原地区の町丁目名で絞り込む
const chomokuFilerExpression = [
  "all",
  ["==", ["slice", ["get", "geocode"], 0, 5], "22138"], // 中央区
  [
    "in",
    ["get", "name"],
    [
      "literal",
      [
        "初生町",
        "三方原町",
        "東三方町",
        "豊岡町",
        "三幸町",
        "大原町",
        "根洗町",
      ],
    ],
  ],
];

const map = new maplibregl.Map({
  container: "map",
  style: {
    version: 8,
    sources: {
      // 地理院タイルの衛星画像
      chiriinPhoto: {
        type: "raster",
        tiles: [
          "https://cyberjapandata.gsi.go.jp/xyz/seamlessphoto/{z}/{x}/{y}.jpg",
        ],
        tileSize: 256,
        attribution:
          '<a href="https://maps.gsi.go.jp/development/ichiran.html target="_blank">地理院タイル</a>',
      },
      // 浜松市再編前の全国市区町村ベクトルタイル
      cityOld: {
        type: "vector",
        tiles: ["http://localhost:5173/city_2023/tiles/{z}/{x}/{y}.pbf"],
        promoteId: "geocode",
      },
      // 浜松市再編後の全国市区町村ベクトルタイル
      cityNew: {
        type: "vector",
        tiles: ["http://localhost:5173/city_2024/tiles/{z}/{x}/{y}.pbf"],
        promoteId: "geocode",
      },
      // 全国町丁目ベクトルタイル
      chomoku: {
        type: "vector",
        tiles: ["http://localhost:5173/chomoku_2024/tiles/{z}/{x}/{y}.pbf"],
        promoteId: "geocode",
      },
    },
    layers: [
      // 地理院タイルの衛星画像レイヤー
      {
        id: "chiriinPhotoLayer",
        type: "raster",
        source: "chiriinPhoto",
        minzoom: 12.5,
        maxzoom: 18,
      },
      // 浜松市再編前の市区町村ラインレイヤー
      // 浜松市のラインだけを点線で表示
      {
        id: "cityOldLineLayer",
        type: "line",
        source: "cityOld",
        "source-layer": "city_202301",
        paint: {
          "line-color": "#444",
          "line-opacity": 1,
          "line-dasharray": [1, 4],
        },
        filter: ["in", ["get", "geocode"], ["literal", oldHamamatsuJISCodes]],
      },
      // 浜松市再編後の市区町村塗りつぶしレイヤー
      // 浜松市だけブルー、他の市区町村はグレーに塗る
      {
        id: "cityNewFillLayer",
        type: "fill",
        source: "cityNew",
        "source-layer": "city_202401",
        maxzoom: 12.5,
        paint: {
          "fill-color": [
            "case",
            ["in", ["get", "geocode"], ["literal", newHamamatsuJISCodes]],
            "#606be6",
            "#ddd",
          ],
          "fill-opacity": 0.3,
        },
      },
      // 浜松市再編後の市区町村ラインレイヤー
      // 特にフィルターなどは設定せず日本全国同じラインにする
      {
        id: "cityNewLineLayer",
        type: "line",
        source: "cityNew",
        "source-layer": "city_202401",
        paint: {
          "line-color": "#444",
          "line-opacity": 0.4,
          "line-width": 0.5,
        },
      },
      // 町丁目の塗りつぶしレイヤー
      // 浜松市中央区の三方原地区だけ表示させる
      {
        id: "chomokuFillLayer",
        type: "fill",
        source: "chomoku",
        "source-layer": "chomoku_population_202401",
        minzoom: 10.5,
        paint: {
          "fill-color": "#e68860",
          "fill-opacity": 0.2,
        },
        // 中央区で且つ三方原地区の町丁目名でフィルター
        filter: chomokuFilerExpression,
      },
      // 町丁目のラインレイヤー
      // 浜松市中央区の三方原地区だけ表示させる
      {
        id: "chomokuLineLayer",
        type: "line",
        source: "chomoku",
        "source-layer": "chomoku_population_202401",
        minzoom: 10.5,
        paint: {
          "line-color": "#e64907",
          "line-opacity": 1,
          "line-width": ["interpolate", ["linear"], ["zoom"], 10, 1, 14, 5], // ズームレベルで線幅を変える
        },
        // 中央区で且つ三方原地区の町丁目名でフィルター
        filter: chomokuFilerExpression,
      },
      // 町丁目のラベルレイヤー
      // 浜松市中央区の三方原地区だけ表示させる
      {
        id: "chomokuLabelLayer",
        type: "symbol",
        source: "chomoku",
        "source-layer": "chomoku_population_202401",
        minzoom: 11,
        layout: {
          "text-field": ["get", "name"],
          "text-font": ["Noto Sans CJK JP Regular"],
        },
        // 中央区で且つ三方原地区の町丁目名でフィルター
        filter: chomokuFilerExpression,
      },
    ],
    // https://glyphs.geolonia.com/
    glyphs: "https://glyphs.geolonia.com/{fontstack}/{range}.pbf",
  },
  localIdeographFontFamily: false,
  center: [137.783911, 34.966706],
  zoom: 9.5,
});

map.on("load", () => {});

export default map;
```

# 最後に… 再び春華堂
春華堂のリンクでこの記事は締めたいと思います。本当におすすめです

https://www.shunkado.co.jp/sweets/