3D は ArcGIS Pro に必要不可欠な要素です。 どの 2D マップも、データの視覚化、探索、または解析のために 3D シーンに変換できます。 ArcGIS Pro では、3D マップはシーンと呼ばれます。 シーンはグローバル モードまたはローカル モードのどちらでも表示できます。 グローバル モードでは、地球は球体で描かれ、視点は通常データから何千キロメートルも離れたところにあります。 ローカル モードでは、地球は透視図で描かれ、視点は通常データから何十キロメートルも離れたところにあります。
概要
- ビデオの長さ: 4:57
- このビデオは ArcGIS Pro 2.9 で作成されました。
このチュートリアルでは、2D マップを 3D シーンに変換して、その 3D 表示プロパティを操作します。
- 所要時間: 30 分
- ソフトウェア要件: ArcGIS Pro
プロジェクトを開く
分析範囲は、ニュージーランドのウェリントンのケルバーン郊外です。 開始時のマップは、「ArcMap ドキュメントのインポート」チュートリアルを完了していれば、ご存じのマップです。
- 必要に応じて、ArcGIS Pro を起動してサイン インします。
- 開始ページにある最近使用したプロジェクトの下で、[別のプロジェクトを開く] をクリックします。
注意:
プロジェクトをすでに開いている場合は、リボン上の [プロジェクト] タブをクリックします。 左側にあるメニュー アイテムのリストで [開く] をクリックします。 [開く] ページで [ポータル] をクリックし、ページの下部にある [別のプロジェクトを開く] をクリックします。
- [プロジェクトを開く] ダイアログ ボックスで、[ポータル] の下の [ArcGIS Online] をクリックします。
注意:
代わりに [ArcGIS Enterprise] が表示された場合は、ポータル接続を追加するか、アクティブなポータルを ArcGIS Online に設定する必要があります。 あるいは、ブラウザーでチュートリアル データをダウンロードすることもできます。
- ダイアログ ボックスの上部にある [検索] ボックスに「Convert a map to a scene tutorial」と入力して Enter キーを押します。
- 検索結果のリストで、[Convert a map to a scene] をクリックして、プロジェクト パッケージを選択します。
注意:
この名前のプロジェクト パッケージが複数ある場合、[所有者] 列を確認します。 所有者の名前が [ArcGISProTutorials] のアイテムを選択します。 結果が表示されない場合は、「検索結果が返されない」をご参照ください。
- [OK] をクリックします。
プロジェクトが開き、ケルバーン郊外のマップ ビューが表示されます。 歩道、道路、および区域を表すレイヤーがダーク グレーのベースマップ上に表示されます。
マップからのシーンの作成
ArcGIS Pro では、3D マップはシーンと呼ばれます。 シーンはグローバル モードまたはローカル モードのどちらでも表示できます。 グローバル モードでは、地球は球体で描かれ、視点は通常データから何千キロメートルも離れたところにあります。 このビューは、非常に大きな分析範囲に最適です。 ローカル モードでは、地球は透視図で描かれ、視点は通常データから何十キロメートルも離れたところにあります。 このビューは、小規模な分析範囲に最適です。
このプロジェクトの対象地域は非常に小規模です。 マップをローカル シーンに変換します。
- リボンの [表示] タブをクリックします。 [ウィンドウ] グループで [ウィンドウのリセット] をクリックし、[マッピング用にウィンドウをリセット] をクリックします。
これにより、[コンテンツ] ウィンドウと [カタログ] ウィンドウが開き、他のウィンドウが閉じられます。
- [表示] タブの [表示] グループにある [変換] をクリックします。 ドロップダウン メニューで、[ローカル シーンに変換] をクリックします。
マップが「Kelburn_3D」という名前のシーンに変換されます。 シーンのビュー タブにローカル シーン アイコン が表示されます。
注意:
シーンをグローバル シーンまたはローカル シーンとして表示するには、[表示] タブの [表示] グループにある [グローバル] または [ローカル] をクリックします。
ローカル シーンは投影座標系に対応しています。 グローバル シーンは投影座標系をサポートしません。 グローバル シーンは WGS 1984 地理座標系を使用します。
[コンテンツ] ウィンドウで、マップ レイヤーがシーンにコピーされています。 このペインの下部には、[WorldElevation3D/Terrain3D] という地表レイヤーを含む [標高サーフェス] カテゴリがあります ([地表] 見出しを展開して、レイヤーを表示します)。このレイヤーには 2D マップ レイヤーの標高値が含まれているため、これらが 3D 空間に描画されます。
[WorldElevation3D/Terrain3D] は、世界を網羅する標高サーフェスで、 解像度や細部の異なる多数の標高マップのコンポジットです。 ニュージーランドでは、その解像度はおよそ 31 メートルです。つまり、961 平方メートルのエリア (31 メートル平方) ごとに 1 つの標高値が存在します。
WorldElevation3D/Terrain3D の解像度と世界のどこかのデータ ソースを表示するには、標高カバレッジ マップを開きます。
現在の視点では、このシーンは完全な 3D に見えませんが、しばらくすると、別の視点からマップ操作ができるようになります。
- リボンの [マップ] タブをクリックします。 [ナビゲーション] グループで、[マップ操作] ツール が選択されていることを確認します。
- マウス ボタンとマウス ホイールを使用して、シーンのズーム、画面移動、傾斜、回転を行います。 あるいは、シーンの左下隅にあるスクリーン ナビゲーター を使用します。
方角がわからなくなった場合は、[マップ] タブにある [ブックマーク] を使用して、基本の視点に戻ります。 3D ナビゲーションに関するヘルプは、「3D でのナビゲーション」または「マップとシーンの操作」クイックスタート チュートリアルをご参照ください。
ダーク グレーのベースマップは 3D 効果を不明瞭にする傾向があるため、このベースマップを変更します。
- [マップ] タブの [レイヤー] グループにある [ベースマップ] をクリックします。 ベースマップのリストで [道路地図] をクリックします。
次に、標高サーフェスのプロパティのいくつかを変更します。
- [コンテンツ] ウィンドウの [標高サーフェス] にある [地表] をクリックします。
[標高サーフェス] コンテキスト タブ セットがリボン上に表示されます。
- [標高サーフェス] の下で、[表示設定] タブをクリックします。
- [描画] グループで [高さ強調] に「1.25」と入力して Enter キーを押します。
高さ強調は、シーンの 3D 表示を強調する視覚効果です。
- [サーフェス] グループで [光源位置を考慮して陰影表示] チェックボックスをオンにします。
これで、シーンの現在のイルミネーション設定に基づいて陰影処理がテレインに追加されます。 ただし、デフォルトでは、太陽高度が 90 度 (真上) に設定されているため、陰影処理は行われません。 標高サーフェスではなく、イルミネーション設定 (シーンのプロパティ) を変更します。
- [コンテンツ] ウィンドウで、シーン名 (Kelburn_3D) を右クリックし、[プロパティ] をクリックします。
- [マップ プロパティ] ダイアログ ボックスで [イルミネーション] タブをクリックします。
- [イルミネーションの定義] で [高度] を「60」に変更して Enter キーを押します。
- [OK] をクリックします。
- 視点を増やしてシーンを表示します。
- [コンテンツ] ウィンドウで [WorldElevation3D/Terrain3D] チェックボックスをオフにします。
シーンが再描画され、マップ レイヤーがフラットになります。 標高値を適用するには、標高サーフェス レイヤーを有効にする必要があります。
- [WorldElevation3D/Terrain3D] チェックボックスをオンにして、レイヤーをもう一度有効にします。
- [クイック アクセス ツールバー] で、[保存] をクリックして、プロジェクトを保存します。
シーンへのレイヤーの追加
2 つの新しいレイヤーをシーンに追加してシンボル表示します。 一方のレイヤーはケルバーン郊外にある建物を表します。 このレイヤーには、建物を立ち上げる、つまり地表からの高さで建物を描画するために使用できる属性があります。 もう一方のレイヤーは、ウェリントン郊外の境界線を表します。 これらのレイヤーのデータセットは、プロジェクト ジオデータベースに保存されます。
- [カタログ] ウィンドウの [プロジェクト] タブで [データベース] を展開します。 [Convert_a_map_to_a_scene.gdb] を展開します。
- [Buildings] フィーチャクラスをクリックして選択します。 Ctrl キーを押しながら、[Suburb_Boundaries] フィーチャクラスもクリックして選択します。
- 選択したフィーチャクラスのどちらかを右クリックして [現在のマップに追加] を選択します。
レイヤーがシーンに追加され、デフォルトのシンボルが表示されます。 [Suburb_Boundaries] レイヤーに塗りつぶし色が付けられます。 シンボルを中空塗りつぶしにして、別のアウトライン色を選択します。
- [コンテンツ] ウィンドウで、[Suburb_Boundaries] レイヤーのシンボルをクリックします。
[シンボル] ウィンドウが開き、ポリゴン シンボルの書式設定オプションが表示されます。
- ウィンドウの上部にある [プロパティ] タブをクリックします。 その下で [シンボル] タブ が選択されていることを確認します。
- [表示設定] で、[色] ドロップダウン矢印をクリックし、[色なし] をクリックします。
- [アウトライン色] ドロップダウン矢印をクリックして、[コードバン ブラウン] を選択します。
- [アウトライン幅] を 1.5 ptに変更して、Enter キーを押します。
- このウィンドウの下部にある [適用] をクリックします。
ケルバーンとその他のウェリントン郊外の境界線を表示できるようになりました。
- [コンテンツ] ウィンドウで、[Buildings] レイヤーのシンボルをクリックします。
建物を表すシンボルを選択します。
- [シンボル] ウィンドウの上部にある [ギャラリー] タブをクリックします。
- 検索ボックスに「building」と入力して Enter キーを押します。
- [ArcGIS 2D] スタイルにあるシンボルのリストで、ベージュ色の [建物フットプリント] シンボルをクリックします。
このシンボルが [コンテンツ] ウィンドウとシーンに反映されます。 ただし、建物はサーフェス上でまだ平らに表示されます。 レイヤー属性テーブルで、高さの値を使用してこれらを立ち上げます。
- [コンテンツ] ウィンドウで [Buildings] レイヤーを右クリックし、[属性テーブル] をクリックします。
Approximate Height フィールドに各建物の地面からの高さがメートル単位で格納されています。
注意:
このテーブルには、各フィーチャの標高値 (Z 値) が格納される Base Elevation という名前のフィールドもあります。 ただし、レイヤーは現在、この情報を使用してフィーチャを 3D 空間に配置していません。 シーン内の他のレイヤーと同様に、[Buildings] レイヤーは [WorldElevation3D/Terrain3D] 標高サーフェスの値を使用しています。
- テーブルを閉じます。 [コンテンツ] ウィンドウで、[Buildings] レイヤーが選択されていることを確認します。
- リボンの [フィーチャ レイヤー] で、[表示設定] タブをクリックします。
- [立ち上げ] グループで、[タイプ] をクリックしてから [最大高度] をクリックします。
- [タイプ] の横にある [フィールド] ドロップダウン矢印をクリックしてから [Approximate Height] をクリックします。
テーブル内の高さの値まで、各建物が立ち上げられました。 立ち上げの単位はメートルに設定され、このレイヤーの正しい単位になります。
注意:
立ち上げがフィーチャの最大高さ ([最大高度]) に適用されました。 その意味を理解するには、4 つの頂点で定義され、斜面に配置された四角形の建物フィーチャを想像してください。 フィーチャの最大高さは、斜面上で最も高い地点にある頂点の標高です。 最小高さは、斜面上で最も低い地点にある頂点の標高です。 建物の屋上が平らになるように、4 つの頂点がすべて同じ高さに立ち上げられます。 したがって、建物が平らな斜面上にない限り、最大高さで立ち上げられたフィーチャは、最小高さで立ち上げられたフィーチャより少しだけ高くなります。 立ち上げの詳細については、「3D シンボルへのフィーチャの立ち上げ」をご参照ください。
[コンテンツ] ウィンドウで、[Buildings] レイヤーが [2D レイヤー] カテゴリから [3D レイヤー] カテゴリに移動しました。これは、立ち上げがこのレイヤーの 3D プロパティであるためです。
- [クイック アクセス ツールバー] で、[保存] をクリックします。
次のセクションでは、ケルバーン郊外の詳細な標高値を提供するために、別の標高サーフェスをシーンに追加します。
シーンへの別の標高サーフェスの追加
標高サーフェスは、連続する地理領域の標高値が格納されるラスター/TIN データセット (またはラスター データセットから作成された Web 標高レイヤー) です。 サーフェスの解像度 (それに含まれる標高の詳細の量) は、場合によって高くなるか低くなります。 通常、広い地域をカバーするサーフェスは、狭い地域をカバーするサーフェスよりも解像度が低くなります (詳細の量が少ない)。 [WorldElevation3D/Terrain3D] は、解像度がかなり低いサーフェスです。
1 つの標高サーフェスに複数のレイヤーを追加することができます。 たとえば、高解像度のレイヤーは狭い対象地域の標高値を提供し、低解像度のレイヤーは周辺地域の標高値を提供します。
このセクションでは、2 つ目の地表標高レイヤーを追加します。 このレイヤーは、1 メートルの解像度で Kelburn 郊外の範囲をカバーします。 マップ レイヤーは、高解像度レイヤーの標高値 (利用できる場合) を使用します。
ほとんどシーンで、標高サーフェスは地表 (地球の表面の地形) を表します。 ただし、適切なデータセットがある場合は、洞窟の床面や湖底など、他の地形を表すこともできます。 カスタム標高サーフェスの詳細については、「標高サーフェス」をご参照ください。
- [コンテンツ] ウィンドウの [標高サーフェス] で、[地表] を右クリックし、[標高ソースの追加] をクリックします。
- [標高ソースの追加] ダイアログ ボックスで、[プロジェクト] > [データベース] > [Convert_a_map_to_a_scene.gdb] の順に展開します。 [Elevation_Kelburn] をクリックして選択します。
- [OK] をクリックします。
[コンテンツ] ウィンドウで、[WorldElevation3D/Terrain3D] レイヤーの上に [Elevation_Kelburn] レイヤーが追加されます。 マップ レイヤーは、標高レイヤーと同一の広がりを持っている場合には [Elevation_Kelburn] の標高値を使用します。[Elevation_Kelburn] を超えて広がっている場合は、[WorldElevation3D/Terrain3D] の標高値を使用します (このシーンでは、[Suburb_Boundaries] を除くすべてのレイヤーは [Elevation_Kelburn] と同一の広がりを持っています)。
注意:
標高レイヤーは、[コンテンツ] ウィンドウのリストに示された順序で使用されます。 このため、低解像度レイヤーの上に高解像度レイヤーを配置する必要があります。 [標高サーフェス] カテゴリ内で標高レイヤーを上下にドラッグすることができます。
- [クイック アクセス ツールバー] で、[保存] をクリックします。
レイヤーの標高ソースの変更
マップ レイヤーに Z 値がジオメトリの一部として格納されている場合、そのレイヤーは 3D です。 3D レイヤーは、属性テーブルの Shape フィールドで確認できます。これらの値の末尾には Z が付きます (ポイントZ、ポリラインZ、ポリゴンZ など)。 デフォルトで、3D レイヤーは、3D 空間への描画に独自の Z 値を使用します。
レイヤーに Z 値がジオメトリの一部として格納されていない場合、そのレイヤーは 2D です。 2D レイヤーは、3D 空間への描画にシーンの標高サーフェスの値を使用します。
[Buildings] レイヤーは 2D レイヤーです。 ただし、このレイヤーは、別のフィールドに標高値が (ジオメトリの一部としてではなく) 格納されているため、シーン内の他の 2D レイヤーとは異なります。 このセクションでは、標高サーフェス値を使用する代わりに、[Buildings] レイヤーの標高ソースをこの属性フィールドに変更します。
- [コンテンツ] ウィンドウで [Buildings] レイヤーを右クリックし、[属性テーブル] をクリックします。
Shape フィールドの値は (ポリゴンZ ではなく) ポリゴンです。 これで、確実にこのレイヤーが 2D レイヤーになります。 ただし、各フィーチャの標高は Base Elevation フィールドに格納されます (このレイヤーのフィーチャは立ち上がっているため、レイヤーは [コンテンツ] ウィンドウの [3D レイヤー] にリストされます)。
- 属性テーブルを閉じます。
- [コンテンツ] ウィンドウで、[Buildings] レイヤーを右クリックし、[プロパティ] をクリックします。
- [レイヤー プロパティ] ダイアログ ボックスで、[高度] タブをクリックします。
地表に表示されるようにフィーチャが設定されます。つまり、シーンの地表標高サーフェスの値が使用されます。 これは、すべての 2D マップ レイヤーのデフォルト設定です。
- [フィーチャ] ドロップダウン矢印をクリックしてから、[絶対高度] をクリックします。
これで、シーンの標高サーフェス以外のソース (この場合は、フィールド) の標高値を使用できるようになります。
- [フィーチャの高さ表現に使用する高度値] の下で [<式>] ドロップダウン矢印をクリックし、[Elevation] をクリックします。
- [高さ強調] を 1.25 に設定します。
この高さ強調設定が標高サーフェスに適用されました。この設定をレイヤーの新しい標高ソースにも適用する必要があります。 適用しないと、建物がシーン内で他のレイヤーよりもかなり低く表示されます。
注意:
3D レイヤーでは、フィーチャがデフォルトで絶対高度になり、フィーチャの標高がジオメトリの Z 値から取得されます。
- [高度単位] が [メートル] に設定されていることを確認します。 [OK] をクリックします。
- シーン内を移動して、さまざまな視点からシーンを表示します。 詳しく見るために拡大します。
いくつかの場所で、建物の一部がテレインの下に埋まっています。 この状況は、1 つのシーンで複数の標高サーフェスが使用されている場合に発生することがあります。 [Buildings] レイヤーの Base Elevation 値と [Elevation_Kelburn] サーフェスの値が別々に取得されたか処理された可能性があります。いずれの場合でも、これらの値が一致していません。 [Buildings] レイヤーの値はより正確かもしれませんが、このレイヤーをシーン内の他のレイヤーと合わせることも重要です。 このため、建物の標高ソースを地表にもう一度設定することができます。
- [クイック アクセス ツールバー] で、[保存] をクリックします。
シーンへのマップの変換に加えて、ArcScene と ArcGlobe から既存の 3D ドキュメントをインポートできます。ArcScene ドキュメントはローカル シーンとして開き、ArcGlobe ドキュメントはグローバル シーンとして開きます。 ArcGIS Pro と ArcScene の 3D 環境は異なっているため、思い通りに表示するにするには、インポートされた ArcScene ドキュメントのマップ プロパティとレイヤー プロパティの操作が必要になることがあります。 場合によっては、同じデータを使用して ArcGIS Pro で新しいシーンを作成する方が簡単です。 通常、インポートされた ArcGlobe ドキュメントは、ほとんど、またはまったく変更されずに ArcGIS Pro で見やすく表示されます。