概要
同じ基礎自治体(市区町村)に島や飛び地がある場合、複数のポリゴンが同一の市区町村名を持つ。国土数値情報から行政区域データを読み込んだ段階では、これらは別々のオブジェクトとなっている。
一つの市区町村に複数の領域がある場合、市区町村単位でこれをまとめて扱いたい。このようなときは、同じ属性を持つ地物を一つにまとめて扱うマルチポリゴン化を行う。
一つの市区町村に複数の領域がある例
埋立地
碧南市はシンプルな例で、本体のエリアのほかに海上の大きな埋立地がある。これらは属性テーブルでは2つのデータに分かれている。
以下は本体の方。
こちらは埋め立て地の方で属性は全て上と同じだが、異なるIDを持つ別の地物となっている。このような例は、埋め立て地のほか大規模な堤防にも見られる。
島や岩場
日本の海岸によくある例で、沿岸に島・岩が多数あり、それらが同じ市区町村の領域となっている。細かい多数の岩が全て館山市の区域。
飛び地
府中市に接する小金井市の中にある東京自治会館だけ、府中市の飛び地となっている。黄色い区域の周りは小金井市、そのすぐ左・下に府中市の本体がある。
市区町村区域のマルチポリゴン化の概要
上記のような島や飛び地など複数のポリゴンを一つのオブジェクトとしてまとめるために、マルチポリゴン化を行う。
その手順中、マルチポリゴンでまとめるキーの属性を指定するが、市区町村単位でまとめた場合、所属未定地の扱いと同名市区町村が問題となる。
所属未定地・同一区名・政令市の扱いの問題
所属未定地の問題
現状のままで市区町村名をキーにしてマルチポリゴン化すると、全都道府県の「所属未定地」が1つのオブジェクトになってしまう。
たとえば以下のように千葉県に1箇所、所属未定地があることがわかる(ここでは属性名をAliasで付け直している)。
また東京都には多くの境界未定地が存在している。
このままmunicipality
をキーとしてマルチポリゴン化すると、千葉県・東京都その他すべての都道府県の所属未定地が一つにまとめられてしまう。
これを都道府県ごとの所属未定地とするためには、都道府県名(prefecture
)と市区町村名(municipality
)をつなげた属性を新たに設ければよい。
同名市区町村の問題
同一名称の市区町村は多数あって、たとえば「池田町」は北海道・福井県・長野県・岐阜県に存在する(2022年時点)。また東京都の特別区や政令市の区の名前もここに現れるが、北区や緑区などは複数存在する。
さらに、同一県内に同名の市区町村が存在する場合もある。たとえば神奈川県横浜市と相模原市の両方に緑区があり、横浜市と相模原市のいずれにも南区がある。このためmunicipality
だけでマルチポリゴン化すると、緑区や南区が1つにまとめられてしまう。
この場合はprefecture
+municipality
だけでは不十分で、政令市名が入るcity_or_county
も含める必要がある。
政令市の扱いの問題
地理院のデータでは政令市内の区が一般の市町村と同じに扱われている。この構造でそのままマルチポリゴン化すると政令市が1つの自治体として扱われず、区単位に分けられる。
政令市を区で分けずに他の市区町村と同じように扱いたい場合には、以下のような新たな属性を設け、それをキーとしてマルチポリゴン化する。
city_or_county
が政令市の場合、prefecture
+city_or_county
cyty_or_county
がNULL
か郡名の場合、prefecture
+municipality
- ここでは同一都道府県内で政令市の区以外に同名の市区町村名は存在しないことを前提としている
新たな属性の追加
ここでは所属未定地、政令市の扱いについて以下のような仕様とする。
- 所属未定地は都道府県単位でまとめる
- 政令市は区で分けず、一般市区町村と同じ行政区として扱う
この条件でマルチポリゴン化するため、以下の手順で新たな属性を追加する。
- レイヤー右クリックでレイヤプロパティダイアログを開く
- 左の属性タブ選択
- 新規フィールドアイコンでフィールド追加し、フィールド名等を設定
- 必要なら属性フォームタブでAilias設定
- OKボタンクリック
- レイヤー右クリックで属性テーブルを開く
- フィールド計算機アイコンでフィールド計算機ダイアログを開く
- 既存フィールド更新で、作成したフィールドを選択
- フィールドの計算式を入力
- プレビューを確認して、よければOKボタンをクリック
以下はフィールド計算機ダイアログの入力状況。計算式でCASE文を使っている。
これを反映した属性テーブルは以下の通り。都道府県名+所属未定地となっていて、政令市と一般市が同列に扱われている。
この段階で編集後の属性テーブルを、「編集内容の保存」アイコンで保存すると、1~2分ほどかけて保存される。その後、プロジェクトを保存しておく。
マルチポリゴン化の実行
マルチポリゴン化を実行するには、メニューから「ベクタ」→「ジオメトリツール」→「シングルパートをマルチパートに集約」と選択していく。
ダイアログが表示され、マルチポリゴン化が実行される。実行は瞬時に終わり、下のプログレスバーは0%だがこの時点で実行は終了している。マルチポリゴン化されたオブジェクトは新たに作成された出力レイヤーに保存される。
出力レイヤーを右クリックして属性テーブルを表示させると、政令市・一般市区町村ごとに1つのレコードとなっている。
先に例示した館山市の海岸部を見てみると、細かな一つ一つの岩が館山市として認識されている。
スクラッチレイヤーの保存
ここまでの状態ではマルチパート化された行政区画があるレイヤーは一時的なスクラッチレイヤーとなっている。継続的にこのレイヤーを使うためには、レイヤーを保存しておく必要がある。
スクラッチレイヤーの場合、レイヤーの右側にアイコンが出るので、それをクリックして、GeoPackageファイルの保存場所を指定して保存する。デフォルトでは、ファイル名がレイヤー名として自動的に初期設定される。