UP | HOME

Mapray CloudへSceneを登録し、複数のDatasetを管理する

1. Scene について

Mapray でデジタルツインサービスを開発する際に、複数の Dataset により使用されることがあります。
これらの Dataset を管理するために「Scene」という概念が Mapray にあります。

scene-overview.png

「Scene」とは、場面や舞台を表します。複数のオブジェクト (Dataset) を Scene に追加することで、一つの場面や舞台を作成することができます。
例えば、ゲームではステージが Scene、キャラクターや建物や道具などがオブジェクトに相当し、ステージ (Scene) の中にキャラクターや建物や道具など (オブジェクト) を複数配置することができます。
Mapray Cloud ではオブジェクトが Dataset であり、 Scene の中に Dataset を複数配置して、一つの Scene として管理することができます。

Scene に配置される Dataset のことを「SceneEntity」と呼びます。
「SceneEntity」は Mapray Cloud へ登録 で登録した 2D、3D、点群などの Dataset の情報をもとに、 Scene 内に独立したオブジェクトを作成します。
Dataset と SceneEntity は親子関係にあり、 Dataset が親、 SceneEntity が子になります。
SceneEntity を編集、削除しても Mapray Cloud に登録している Dataset には影響をありませんが、 Mapray Cloud に登録している Dataset を削除すると SceneEntity も削除されます。
また、SceneEntity を複製した際、元の SceneEntity を編集や削除をしても複製先の SceneEntity は影響を受けません。

現在は 3D Dataset のみ対応しています。 以下の操作では 3D Dataset が必要になるためMapray Cloud へ登録(3D)をご参照頂きアップロードしてください。

1.1. Scene の利用例

通常、複数の Dataset をアプリケーションに追加する場合、ひとつずつコードを書いて追加する必要があります。
しかし、Scene を利用することで、複数の Datasets を一元管理することができ、アプリケーションに Scene を追加することで複数の Dataset をまとめて追加できます。

例えば、下の scene-sample では1つの 3D Dataset から SceneEntity を3つ作成しています。
Scene 内では、同じ 3D Dataset を異なる位置や向きで複数配置することができます。
scene-sample2 では、2つの 3D Dataset から SceneEntity を作成しています。

scene-sample scene-sample2
scene-sample.png scene-sample2.png

このように作成した Scene を最小構成のアプリケーションに追加し、表示した例を以下に示します。
左は scene-sample のみ、右は scene-sample と scene-sample2 を追加した場合の表示例をそれぞれ示しています。

1つの Scene を追加 複数の Scene を追加
viewer-mono-scene.png viewer-multi-scene.png

このように、Sceneを利用することで、複数の Dataset を簡単に管理、編集したり、アプリケーションに追加したりすることができます。

2. Scene を作成する

Mapray Cloud から Scene の作成を行います。

Scenes ページを表示している状態で、 Create a Scene をクリックします。

click-create-scene-button.png

New Scene ダイアログが表示されたら、必要事項を入力します。

create-scene-dialog.png
プロパティ 説明
Name 任意の名前を指定します
Desctiption 任意の説明を指定します
Origin シーンの原点位置を緯度・経度で指定します。X: 経度, Y: 緯度, Z: 高さの順に指定します

入力が完了したら OK をクリックします。

click-create-button.png

Scene の作成に成功したら、リストに新しい項目が追加されます。

scene-list.png

3. Scene の編集ページに遷移する

Scene を作成したら、編集したい Scene の 編集アイコン をクリックします。

click-edit-scene-button.png

編集ページに遷移したら、下記のようなページが表示されます。

edit-scene-page.png

編集ページでは Scene の編集、保存、 SceneEntity の作成、編集、削除、表示が行えます。

4. SceneEntity を作成する

プルダウンメニューの 追加アイコン をクリックします。

click-add-icon.png

Add Scene EntityScene ダイアログが表示されたら、 Dataset を選択してください。
※ Dataset は3Dデータをアップロードしていない、または、変換処理が終了していないと表示されません。

select-3ddataset.png

Dataset を選択したら、 Dataset の値が初期値として表示されますので、変更したい場合は値を入力します。

input-value-add-entity.png
プロパティ 説明
EntityName 任意の名前を指定します
Origin モデルを配置する場所を緯度・経度で指定します。X: 経度, Y: 緯度, Z: 高さの順に指定します
Rotation モデルの回転する方向を指定します。Heading: Z軸, Tilt: X軸, Roll: Y軸の順に指定します
Scele モデルの縮尺比率を指定します。ScaleX: 横, ScaleY: 縦, ScaleZ: 高さの順に指定します

入力が完了したら OK をクリックします。

click-add-button.png

SceneEntity が作成されたら、プルダウンメニューに SceneEntity が追加されます。

scene-entity-menu.png

また地図上に 3D Dataset が表示されます。

success-add-gltf-model.png

※保存をせずにページを離れると変更が保存されないのでご注意ください。保存は Scene を保存するを参考にしてください。

5. SceneEntity を編集する

プルダウンメニューの SceneEntity または地図上の 3D Dataset をクリックします。

click-scene-entity.png

SceneEntity の入力欄が表示され、地図上の 3D Dataset に矢印が表示されます。

input-value-update-entity.png
プロパティ 説明
EntityName 任意の名前を指定します
Position モデルを配置する場所を緯度・経度で指定します。X: 経度, Y: 緯度, Z: 高さの順に指定します
Pivot モデルの原点位置を指定します。PivotX: X軸, PivotY: Y軸 , PivotZ: Z軸の順に指定します。 Rotation による回転や Scale による拡大縮小は、この原点位置を中心として計算されます。
Rotation モデルの回転する方向を指定します。Heading: Z軸, Tilt: X軸, Roll: Y軸の順に指定します。入力欄下のスライドバーでも値が変更できます
Scele モデルの縮尺を指定します。ScaleX: 横, ScaleY: 縦, ScaleZ: 高さの順に指定します。 Link ボタンを押すとX, Y, Zの値が同じになります

表示されている矢印をドラッグすると Position を変更することができます。操作モードに応じて、 Pivot や Rotation や Scale を変更することができます。

値が変更されたら、3D Dataset が値に対応して表示されます。

success-update-scene-entity.png

※保存をせずにページを離れると変更が保存されないのでご注意ください。保存は Scene を保存するを参考にしてください。

6. SceneEntity を削除する

SceneEntity 名の 削除アイコン をクリックします。

click-delete-icon.png

Delete Scene Entity ダイアログが表示されたら、 Delete をクリックします。

click-delete-scene-button.png

プルダウンメニューと 3D Dataset が削除されます。

success-delete.png

※保存をせずにページを離れると変更が保存されないのでご注意ください。保存は Scene を保存するを参考にしてください。

7. SceneEntity をコピーする

SceneEntity 名の コピーアイコン をクリックします。

click-copy-icon.png

プルダウンメニューに追加され、 3D Dataset が表示されます。 複製コピーのため 3D Dataset は重なって表示されます。

success-copy.png

※保存をせずにページを離れると変更が保存されないのでご注意ください。保存は Scene を保存するを参考にしてください。

8. Sceneを編集する

編集アイコン をクリックします。

click-update-scene-icon.png

Update Scene ダイアログが表示されたら、変更する値を入力します。

update-scene-dialog.png

入力が完了したら Update をクリックします。

click-update-scene-button.png

※保存をせずにページを離れると変更が保存されないのでご注意ください。保存は Scene を保存するを参考にしてください。

9. Sceneを保存する

保存アイコン をクリックします。

click-save-icon.png

Save Scene ダイアログが表示されたら、 Save をクリックします。

click-save-button.png

保存に成功したら、メッセージが表示されます。

success-save.png

10. Mapray Cloud に保存された Scene を maprayJS で表示する

例として、最小構成アプリケーションに Mapray Cloud に保存された Scene を読み込む例を示します。
最小構成アプリケーションの html の <script> に下記のコードを追加します。追加する場所は、 var viewer = new mapray.Viewer(...); の部分以降であればどこでも構いません。

// Mapray Cloud へのアクセス情報を生成します。
var maprayApi = new mapray.cloud.CloudApiV2({
  basePath: "https://cloud.mapray.com",
  tokenType: mapray.cloud.CloudApi.TokenType.API_KEY,
  token: "<token>"
});

// Mapray Api を使ってリソースを定義します。
var resource = maprayApi.getSceneAsResource(["<sceneId>"]);

// SceneLoader を使ってリソースを読み込みます。
var loader = new mapray.SceneLoader(viewer.scene, resource);
loader.load();

<token> についてはリソースの管理と認証をご参照頂き、適切な値に変更してください。 また、 <sceneId> については、 SceneEntity を保存したシーンのIDに変更してください。

SceneEntity を3つ用意し、 Position を それぞれ以下の値に変更します。

  • longitude: 138.239, latitude: 35.654, Altitude: 2958.785
  • longitude: 138.245, latitude: 35.670, Altitude: 2867.169
  • longitude: 138.249, latitude: 35.654, Altitude: 2763.468

※保存をせずにページを離れると変更が保存されないのでご注意ください。保存は Scene を保存するを参考にしてください。

ブラウザで確認すると、下記のように複数の glTF モデルが表示されます。

viewer_scene.png