日本には7重内陸区市町村が存在する

f:id:lastline:20180515135054p:plain

n重内陸区市町村問題

世界には、48の内陸国が存在するが、その中でも海に出るために二つの国境を越える必要のある二重内陸国は、リヒテンシュタインウズベキスタンの2国しかない。
二重内陸国を日本の都道府県に当てはめてみようと思ったが、二重内陸都道府県は存在しない。海なし県として、栃木県、群馬県、埼玉県、長野県、山梨県岐阜県滋賀県奈良県があるものの、これらの県は一つの県境をまたげば海に出ることができる。奈良県以外は、互いに他の海なし県と接しているのが面白い。
二重内陸国の概念を市町村に拡張すると、二重ではすまないことが容易に想像できるだろう。言い換えると「日本の市町村において、海に出るまでに n 個の境界を越える必要のある市町村を n重内市町村としたとき、最大の n はいくつか」という問題になる。

市町村の区分としては、基盤自治体を元とする。つまり、東京都の「特別区」は「区」を、政令指定都市の「区」は「市」を境界とする。これは、東京都の「特別区」は「市町村」と同等の基盤自治体であることによる。

白地図に海岸線を有する市町村から順に内陸方向へ塗りつぶすことで、最大のnは7であることが分かった。つまり、7重内陸市町村が存在する。
各地域毎の結果を最後にまとめて表示した。

解法の指針

日本の中心はどの県だ?グラフ理論(ネットワーク)の基本的な諸概念 - アジマティクス
市区町村隣接関係一覧
当初は市町村の隣接データを元に、スクリプトを書いてグラフ理論で解こうと考えていた。しかし、「日本一マクドナルドから遠い場所」において、力業で求めた方がもっともらしい回答が得られていたので、白地図を地道に塗り塗りすることにした。
そもそも、市町村が多すぎるためデータの取り扱いが煩雑である。また、結果を可視化する場合にも色分けされた地図が必要となる。さらに、得られた結果を確認するためにも、ある程度手を動かす必要がある。結果を知りたいだけならスクリプトを書くよりも、地道に塗った方が早そうである。
都道府県における、n重内陸市町村をリストアップするならスクリプトを書いた方が間違いは少ないだろうが、興味があるのは最大の n のみなので、やはり手作業の方が単純で容易そうだ。

日本一マクドナルドから遠い場所 - Qiita
「本当に」日本一マクドナルドから遠い場所|ヌノカワ ユウスケ|note

高解像度の白地図

地図を塗るにも、それなりの高解像度の白地図が必要である。これは、スクリプトを書く場合も同様で可視化のためにベクター形式の地図情報があると便利である。

そこで、白地図 KenMap (白地図作成ソフト)白地図を用いることにした。関東付近は市町村が非常に過密なため、境界がやや曖昧になるものの、塗り分け用の地図としては必要十分である。

ちなみに、国土地理院から白地図を得られるが、市町村の区分まで表示するには倍率を上げる必要がある。一つの県を表示するのがやっとである。これをつなぎ合わせも良いが、手間がかかりすぎる。

Shapefileを読んでみる - 日々適当
shape形式のファイルを読み込む手も考えられるが、全国区で市町村を表示するとかなりの数のポリゴン数になるようである。そもそも、市町村を全国区の表示で見る用途など、想定されていないのだろう。

7重内陸市町村が最大

1重内陸市町村までしか有しない都道府県

1重内陸市町村しか存在しないのは、沖縄県、鹿児島県、長崎県佐賀県山口県愛媛県香川県福井県、石川県、富山県三重県の11県である。
中でも、沖縄県長崎県山口県は、1重内陸市町村を一つしか有しない。それぞれ、沖縄県南風原町長崎県波佐見町山口県美祢市である。島からなる沖縄県に内陸市町村があるのは興味深い。

7重内陸市町村は埼玉県と群馬県にある

n の最大値は7である。つまり、日本には7重内陸市町村が存在する。埼玉県の美里町滑川町東松山市、吉見町、北本市行田市羽生市、および、群馬県千代田町明和町が該当する。

次に、各7重内陸市町村が海へ出るルートを考えてみよう。千代田町群馬県を抜け新潟県へ、明和町は一旦栃木県に入り、再度群馬県にも取り、新潟県側へ出るルートが最も境界が少ない。
また、美里町は、千代田町とほぼ同じ道筋を辿る日本海ルートの他に、長野と山梨を経由して静岡県側から出るルートもある。その他の市町村は東京湾に出た方が境界が少ない。東松山市、吉見町、北本市などはさいたま市を経由し、東京へ出るルートが距離的にも短くなる。行田市羽生市は、細く長く伸びた千葉県野田市のお陰で越えるべき境界数が少なくなっている。

埼玉と群馬にnが最大となる市町村が存在する理由は、関東の市町村が非常に多いことに起因する。特に、埼玉県は小さな市町村が非常に多い。そのため、海に出るために経由すべき境界が増加しやすい。

その他の地域は市町村の合併により、市町村数が減少し、また、本来海外線を有したかった市町村が海外線を有するようになったことにより、n が減少した可能性が考えられる。恐らく、旧市町村の区分だと、 n はより大きくなるだろう。

地域別のn重内陸市町村

地域別に見ると、九州では福岡県と佐賀県に3重内陸市町村が存在する。これは、福岡県に市町村が多いためだ。
中国地方では、岡山県のみに3重内陸市町村がある。山がちな地域のため納得ではある。一方で、四国は2重内陸市町村までである。その中でも徳島に二重内陸国市町村が多いのも山によるものだろう。
関西は奈良県に4重内陸市町村があり、橿原市田原本町などが該当する。山がちな点と、大阪府奈良県に市町村が多いためと考えられる。長野県と岐阜県は意外にも3重内陸市町村しか存在しない。岐阜県高山市や長野県松本市の面積が広いため、多くの市町村と接することになるためだ。
東北地方は福島県に4重内陸市町村があり、北海道は3重内陸市町村までとなる。東北は、海岸線を有する市町村が割と内陸まで入り込んでいる場合が多い。その中で、福島県の場合は地形的のも内陸に入り込み、また市町村が多いため、内陸市町村が多くなっている。

海岸線を有するにも拘わらず、茨城県には5重内陸市町村が存在する。それぞれ、古河市結城市、八千代町であるが、これは海あり県では、最大である。そもそも、海なし県である、群馬県と埼玉県が最大の7重、次いで栃木県に6重があり、5重で茨城県山梨県が並んでいる。他の海なし県である、長野県、岐阜県滋賀県奈良県よりも多いのだ。これは、茨城県の内陸部が海なし県と接しているためであろう。

やっぱりスクリプト書いてみるかなぁ

日本の市町村において、海に出るまでに n 個の境界を越える必要のある市町村を n重内市町村としたとき、最大の n は 7 である。この時、東京都の「特別区」は境界とし、政令指定都市の「区」は「市」を境界とした。
ちなみに、地図は掲載しないが、東京23区をひとまとめにした場合もnの最大値は7となる。また、政令指定都市の区を境界とすると、nの最大値は8となる。

7重内陸市町村は、埼玉県の美里町滑川町東松山市、吉見町、北本市行田市羽生市、および、群馬県千代田町明和町である。それぞれ、日本海側、東京湾および静岡経由で海に抜けるルートが存在する。今回は、最長のルートを有する市町村は考慮しなかったが、これを求めることで、最内陸市町村を決定できそうである。また、今回のルートは山による境などを加味していないため、踏破できないことも十分考えられる。

海あり県では、茨城県に5重内陸市町村が存在する。長野県、岐阜県滋賀県奈良県より多いn重内陸市町村を有している。

スクリプトを書けば、より詳細なリストやルートが得られそうだが、これは今後の課題にしたい。

塗り分けた結果

緑が濃くなるごとにnが大きくなる。
f:id:lastline:20180515133921p:plain
f:id:lastline:20180515134119p:plain
f:id:lastline:20180515134208p:plain
f:id:lastline:20180515134327p:plain
f:id:lastline:20180515134346p:plain
f:id:lastline:20180515134431p:plain
f:id:lastline:20180515134518p:plain