【第2回】クイックスタート!港区のデータで学ぶ地図と3Dシーン作成
こんにちは!GIS導入支援コンサルタントのippuku_timeです。
「5分で分かるSuperMap iDesktopX製品・機能紹介シリーズ」、前回はiDesktopXの全体像をご紹介しました。今回は、いよいよ実際にソフトウェアを操作して、最初の地図と3Dシーンを作成する手順を一緒に見ていきましょう。今回は、私たちの拠点でもある東京都港区のオープンデータを使った、より実践的なチュートリアルをお届けします。
【第2回】クイックスタート!港区のデータで学ぶ地図と3Dシーン作成
1. 最初の2D地図を作成する(港区編)
1.1 データの準備と地図の新規作成
このチュートリアルでは、点(駅など)、線(道路など)、面(建物形状など)のデータが必要です。幸いなことに、日本では国土交通省の「Project PLATEAU」によって、全国の3D都市モデルがオープンデータとして整備されています。
G空間情報センターのウェブサイトから、東京都23区のデータセットをダウンロードできます。ここには、今回のチュートリアルに最適な、高さ情報を持つ建物データなどが含まれています。
(2) ワークスペースの作成とデータのインポート
iDesktopXを起動し、新しいワークスペースを作成します。ダウンロードした港区のデータ(例: GeoPackage形式の建物データなど)を、ワークスペースにインポートまたは直接開きます。
(3) 新規地図にデータを追加
ワークスペースマネージャーの「地図」を右クリックし、「新規地図ウィンドウ」を選択します。インポートした港区の建物、道路、鉄道などのデータセットを地図に追加します。
1.2 レイヤースタイルの設定
(1) ポリゴンレイヤーのスタイル設定(建物、公園など)
① レイヤーマネージャーで建物レイヤーをダブルクリックし、スタイルパネルを開きます。建物をグレーなどの落ち着いた色で塗りつぶします。
② 公園レイヤーは緑色に設定し、地図の視認性を高めます。
(2) ラインレイヤーのスタイル設定(道路、鉄道)
① 道路レイヤーは、道路種別(国道、都道など)に応じて線の太さや色を変えると、より分かりやすくなります。
② 鉄道レイヤーも同様に、路線ごとに色分けしてみましょう。
(3) ポイントレイヤーのスタイル設定(駅)
① 駅レイヤーのシンボルを、鉄道駅を示す標準的なアイコンに変更します。
1.3 レイヤーへのラベル付け
(1) レイヤーマネージャーで駅レイヤーを右クリックし、「主題図の作成...」から「ラベル主題図」を選択します。
(2) ラベルとして表示したい属性フィールド(駅名が格納されているフィールド)を指定し、フォントのサイズや色、表示位置を調整します。文字が重ならないように、自動配置機能を活用するのがポイントです。
1.4 地図成果の保存
2. 最初の3Dシーンを構築する(港区編)
2.1 3Dシーンの新規作成とデータの読み込み
(2) ワークスペースマネージャーから、PLATEAUで取得した港区の建物ポリゴンデータ(高さ情報が含まれているもの)を3Dシーンにドラッグ&ドロップします。最初は2Dのポリゴンが地表面に貼り付いた状態で表示されます。
2.2 クイックモデリング(建物の立ち上げ)
(1) レイヤーマネージャーで建物のポリゴンレイヤーを選択します。
(2) 「スタイル設定」タブ -> 「立ち上げ設定」グループに進みます。
(3) 「立ち上げ高」のドロップダウンリストから、建物の高さが格納されている属性フィールドを選択します(PLATEAUのデータには通常、高さや階数のフィールドが含まれています)。
これだけの操作で、港区の建物が一斉に立ち上がり、立体的な3D都市景観が出現します。東京タワーや六本木ヒルズなど、見慣れた建物が3Dで再現される様子は圧巻です。
2.3 3D主題図の作成
(1) レイヤーマネージャーで建物レイヤーを右クリックし、「主題図の作成...」から「段階区分主題図」を選択します。
(2) 色分けの基準となるフィールド(例えば建物の高さ)を指定し、カラーパターンを選択します。高層ビルほど赤く、低層の建物ほど青く表示させることで、都市の高さの分布が一目で分かるようになります。
2.4 シーンの保存
まとめ
次回は、**第3回「GISデータの心臓部!iDesktopXのデータ管理を徹底解説」**です。GISの作業効率を左右する、ワークスペース、データソース、データセットといったデータの管理構造について詳しく解説します。
付録:サンプルコード(Python)
iDesktopXのPython IDEを使い、港区の地図レイヤー(例えば駅)のシンボルをプログラムで変更するサンプルコードです。
Python
# -*- coding: utf-8 -*-
from PySuperMap import *
def style_minato_station_layer():
"""
港区の地図上の駅レイヤーのスタイルをプログラムで変更するサンプル
"""
try:
# ワークスペースとアクティブなマップを取得
workspace = Workspace()
map_view = workspace.get_active_map_view()
if map_view is None:
print("アクティブな地図がありません。")
return
map_obj = map_view.get_map()
# 'Stations_Minato' という名前のポイントレイヤーを取得
layer_name = "Stations_Minato"
layer = map_obj.get_layers().get_item(layer_name)
if layer is None or layer.get_type() != LayerType.VECTOR_POINT:
print(f"ポイントレイヤー '{layer_name}' が見つかりません。")
return
# 新しいマーカーシンボルを作成
style = GeoStyle()
symbol_id = 31 # システムシンボルライブラリ内のID(例:鉄道駅)
# マーカーシンボルのプロパティを設定
marker_symbol = MarkerSymbol()
marker_symbol.set_id(symbol_id)
marker_symbol.set_size(Size2D(8, 8)) # シンボルサイズを8x8ピクセルに設定
marker_symbol.set_color(Color(255, 0, 0)) # シンボルを赤色に設定
style.set_marker_symbol(marker_symbol)
# 変更したスタイルをレイヤーに適用
layer.set_style(style)
# 地図をリフレッシュして変更を反映
map_obj.refresh()
print(f"レイヤー '{layer_name}' のシンボルを変更しました。")
except Exception as e:
print(f"エラーが発生しました: {e}")
if __name__ == '__main__':
style_minato_station_layer()
コメント
コメントを投稿