3Dモデルをいろいろ作ってみたい

3Dモデルをいろいろ作ろうとがんばっています。苦労した点、役に立ちそうな情報を発信していきます。

立体地図を作る -補足1 パズルのピースとして形を整える-

都道府県ごとに立体地図をモデル化したのは各県をピースとしてジグソーパズルにするという目論見がありました。正確な行政区画のとおりに輪郭を作ってしまうと県境が細かく互いに入り組んでしまってピース同士をはめ合わせることが難しくなってしまいます。そこで、行政区画を参考にしながら、もっと単純化した図形でポリゴンを手作業で作成しこのポリゴンに従って標高メッシュを切り分けることにしました。

参考にするのは「その2 行政区画情報の準備」でQGISにとりこんだ国土地理院の行政区画情報です。フィールド計算機を使って新しいフィールド都道府県を追加してうえで参考にしやすいよう県別に地図を色分けしておきます。

(1)行政区画のレイヤを選択した状態でレイヤパネル左上の「レイヤスタイルドックを開く」アイコンをクリックしてレイヤスタイルドックを開く

(2)レイヤの種類で「分類された」を選択

(3)カラムをクリックして都道府県のフィールドを選択

(4)分類ボタンをクリック

以上の操作により都道府県ごとの色分けが行われます(下図参照)。

f:id:ichidaya:20181226001746p:plain

都道府県ごとの色分け

 色分けされた行政区画を見ながら新たに自分で都道府県の輪郭を示すポリゴンを作成していきます。まず、ポリゴン作成用のレイヤを新規作成します。

(1)レイヤ->レイヤの作成->新規シェイプファイルレイヤをクリック

(2)ダイアログでタイプ:ポリゴンを選択、新規フィールドとしてテキスト型の「都道府県」というフィールドを追加

(3)OKをクリック、シェイプファイルの格納場所を聞かれるのでファイルパスを指定してOKをクリック

f:id:ichidaya:20181226154448p:plain

新規ポリゴンレイヤの作成

新しく作ったレイヤを選択した状態でポリゴンを作成するのですがその前にスナップの設定をしておきます。これを設定しておくと隣り合う県のポリゴンの境目部分をぴったり合わせることができます。設定->スナップオプションをクリックします。

f:id:ichidaya:20181226185300p:plain

スナップの設定

表示されたダイアログ上で該当レイヤに対してスナップの許容範囲(0より大きい値)と交差の禁止を指定します。このとき他のレイヤに対して交差の禁止が指定されていないことを確認しておいてください。他のレイヤに対して交差禁止を指定しますとポリゴン作成時に「交差回避によりジオメトリが壊れているので地物を追加できません」というエラーが頻繁に発生してしまいます。

ポリゴンの作成にはQGISウィンドウの左上にアイコンがある3つの機能(青枠で囲った左から「編集モード切替」、「地物の追加」、「ノードツール」)を使用します。

f:id:ichidaya:20181226174558p:plain

ポリゴン作成に用いる機能のアイコン

(1)編集モード切替アイコンをクリックしてポリゴンの入力・編集を可能にする

(2)地物の追加アイコンをクリック後、都道府県のかたちに沿って点をクリックしてポリゴンを定義する

(3)右クリックで形の定義を終了させ、idと都道府県名を入力する。

実際には(2)の操作だけで所望のかたちに作るのは難しいので四角形など単純なポリゴンをいったん作ってから、ノードツールを使って複雑な形状に編集していきます。ノードツールのアイコンをクリックすると、ポリゴンに対して頂点の追加・削除や頂点の移動ができるようになるので、これらの操作を行って都道府県を示すポリゴンをレイヤに追加していきます。

f:id:ichidaya:20181226194052p:plain

都道府県ポリゴンの作成

 各ポリゴンには属性として都道府県名が付加されているので「その3 標高メッシュの作成」に記載されているようにベクタ->データマネジメントツール->属性の結合によって行政区画のベクタレイヤの属性を標高メッシュのベクタレイアの属性に結合します。このときのダイアログで

f:id:ichidaya:20181227000110p:plain

ベクタレイヤ間での属性結合ダイアログ

ジオメトリの述語で「範囲内」のみを指定しておくと行政区画のポリゴンの線と交差・接触する境界上のマス目はは結果から除外されるので、都道府県をピースとしたときのはめ合わせに一定のクリアランスを確保しています。

f:id:ichidaya:20181227000728p:plain

標高メッシュと行政区画の結合結果

この結果の属性テーブルの情報をExcel経由でOpenSCADにとりこみ(その4 3Dモデルの生成に記述したように)3Dモデルを作成することができます。

 

f:id:ichidaya:20190104151929p:plain

府県ごとに分かれたピース