<\/HEAD>
このアプリは、最近リリースされた ArcGIS Quartz Runtime 100.2.1 SDK for Android の機能、特に3D 機能を示すために作成しました。3D とランタイムのチームは、最新のモバイルデバイスで 3D データと解析がスムーズに動作するよう多くの努力を重ねています。<\/P>
<\/P>
何ができるの?<\/H2>Esri のI3S 仕様は、3 種類のシーン レイヤーをカバーしています:3D オブジェクト、統合メッシュ、およびポイント クラウド。現在、Quartz ランタイムでは 3D オブジェクトと統合メッシュを表示できます。このアプリがデフォルトで読み込むウェブ シーンは、その両方のレイヤー タイプの例を示しています。<\/P>アプリはウェブ シーン ID を使ってシーン レイヤー、背景レイヤー、およびスライド(3D ブックマーク)のリストを読み込みます。そのウェブ シーンの ID は identifiers.xml ソースコード ファイルにあります。デフォルト以外のウェブ シーンを開きたい場合は、ツールバーのOpen<\/EM>ボタンを使って ArcGIS.com の認証情報を入力してください。するとあなたのアカウントが所有するウェブ シーンを見つけて、それらの中から開くことができます。注意:表示されるのはあなたが作成したウェブ シーンのみであり、他者が作成しあなたに提供されたすべてのウェブ シーンではありません。<\/P>Bookmarks<\/EM>ボタンはウェブ シーン内のスライド一覧を表示し、タップするとそのスライド位置に移動します。Layers<\/EM>ボタンはウェブ シーンで定義されたすべてのシーン レイヤーのチェックボックス リストを表示します。<\/P><\/P>標準ナビゲーション
<\/H2>まずはパン、ズーム、回転、傾斜操作に慣れてください。SDK はデバイスの GPU を利用してグラフィックス計算を高速化し、ナビゲーションを滑らかにします。サポートされている標準的なジェスチャーやタッチ操作についてはこちらをご覧ください:https:\/\/developers.arcgis.com\/android\/latest\/guide\/navigate-a-scene-view.htm<\/A><\/P>このアプリのツールはすべて右端のツールバー アイコンにあります。それをタップするとポップアップ メニューが表示されます。Standard Navigation<\/EM>は現在選択中のツールを無効にし、ビューを上記リンクで説明されている標準的なナビゲーション ジェスチャーに戻します。<\/P><\/P>
Viewshed解析<\/H2>Viewshed 解析は SDK が提供する以上の処理を行います。まず各解析は 120° の弧に制限されており、1 回のタップで完全な 360° カバーのために 3 回解析が呼び出されます。またユーザーがまるで地面に立っているかのように解析中心に配置されることも意図しており、それがズーム浮動アクション ボタンの役割です。
カメラがシーン内へ降りると、この浮動アクション ボタンは戻るボタンになり、カメラを元の空間位置へ戻します。
画面左下にはビューシェッド距離をインタラクティブに変更できるスライダーもあります。これで異なるシーンや可視性シナリオを探索できます;密集した都市部には小さい値、障害物が少ない田舎風景には大きい値がおすすめです。<\/P>
<\/P>指で画面上をドラッグすると解析結果が動くようにしてよりインタラクティブな体験になるよう工夫しました。ただしこれは通常ビュー移動用パン操作と同じジェスチャーなので、ビューだけパンしたい場合があります。その場合は長押し(指を動かさず約1秒間押し続ける)するとコンパス下に四方向矢印アイコンが表示されます。それはビューがパンモードになったことを示し、その間ビュー移動のみ行われ Viewshed 再実行はされません。指を離すまで続きます。<\/P><\/P>センサー ナビゲーション モード<\/H2>Viewshed 中心にいる観測者になった気分で、デバイス自体を傾けたり回転させたりしてビュー移動できたら楽しいだろうと思いました。それが Sensor Navigation<\/EM> モードです。デバイスのジャイロセンサーから動きを検知し、それに応じてシーンも動きます。ただしこのモードでは大量のシーン データ要求が発生しやすく、デバイスやネットワーク接続またはシーンサービス側が追いつかない可能性があります。<\/P><\/P>ピボット ロック (Pivot lock)<\/H2>特定の建物や特徴物に注目したい場合は Pivot Lock<\/EM> を使ってその地点中心に回転できます。有効化後ポイントをタップまたはドラッグすると、その地点周りでビューが回転し始めます。浮動アクション ボタンで標準ナビゲーションへ戻れます。
画面どこでもタップすると回転停止し、新たなポイントで再度開始可能です。このツールは SDK のOrbitCameraController を利用しており、多くのカスタムコードなしで機能提供しています。<\/P>
技術ノート
すべてのツールはDefaultSceneViewOnTouchListener クラスを拡張しています。一つ選択すると、新しいタッチ リスナーとして Scene View に設定するコードは一行だけで、新しいツール選択まで全てのタッチ ジェスチャー処理を引き継ぎます。
マニフェストでは OpenGL ES 3.0 以上が必要ですが、それはランタイム SDK の厳密な要件ではありません(将来リリースで要件になる可能性あり)。OpenGL ES 2 を使うデバイスでも動作しますが、それらは一般的に古く GPU やメモリ・プロセッサ性能不足で 3D アプリ快適動作には向いていません。
Apache 2.0 ライセンス下のオープンソース ライブラリもいくつか使用しています。
入手方法
このアプリのソースコードは公開 Github リポジトリで入手可能です;こちらからご覧ください:https://github.com/markdeaton/esri-3d-android
自由にクローンやフォークしてご利用ください。また次回 Esri SDK リリース時には大幅アップデート予定で、そのリリースによってこのアプリ内カスタム ウェブ シーン パース コードの多くが不要になる見込みです。