Standard Viewer¶
Mapray UI Package は、Mapray の UI 操作を容易に行うことができる補助パッケージです。
Mapray UI Package を導入すると、 StandardUIViewer を使用できます。
これは、Mapray Core Package の Viewer を継承し、基本的な UI 操作を行うことができるものです。
マウスやキーボードの基本操作について処理の記述が不要になりますので、手軽に Mapray を利用することが可能です。
Mapray JSには提供方法で複数のバージョンがあります。 Latest VersionではAccess Tokenを簡単に利用できるAPIを準備しているため、そちらのAPIの利用をおすすめしていますので、 Local Latest Versionにサンプルを掲載します。バージョンと法式により、SDKの読み込み方法に若干の違いがあります。
| バージョン | 提供方法 | アクセス方法 | 備考 |
|---|---|---|---|
| 0.9.6 | CDN / npm packages | API Key | 実装がシンプルなため、本ドキュメントでは主にこの形で説明 |
| 0.10.x以上 | ローカル配布(利用は要問い合わせ) / Github packages | Access Token | APIにより簡単かつセキュアに利用可能。ローカル配布版で説明を行うが、package版でも利用可能 |
StandardUIViewer を使ったサンプルです。
CSS は Mapray のロゴやその他のリソースを表示するために必要になります。
StandardUIViewer コンストラクタでは、2つの引数を指定します。
- コンテナ - Mapray を表示する要素
- Viewer のオプション - Mapray Viewer のオプション(省略可能)
このサンプルでは、オプションでMapray Cloudから提供される地形データを指定しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | |
Info
このサンプルコードは、<YOUR_MAPRAY_ACCESS_TOKEN>を、あなたのMapray CloudアカウントのOrganization Tokenに置き換えるまで、期待通りに動作しません。
StandardUIViewer を使ったサンプルです。
CSS は Mapray のロゴやその他のリソースを表示するために必要になります。
StandardUIViewer コンストラクタでは、3つの引数を指定します。
- コンテナ - Mapray を表示する要素
- API Key - Mapray のAPI Key
- Viewer のオプション - Mapray Viewer のオプション(省略可能)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |
Info
このサンプルコードは、<YOUR_MAPRAY_API_KEY>を、あなたのMapray CloudアカウントのAPI Keyに置き換えるまで、期待通りに動作しません。
プロジェクト作成
本説明では、最終的に下記のようなディレクトリ構成となります。
.
├─ dist/ ビルド後の js が出力されるディレクトリ
├─ package.json Node の設定ファイル
├─ src/ ソースファイルのディレクトリ
├─ webpack.config.js ビルド設定ファイル
├─ node_modules/ Node の依存ライブラリが保存されるディレクトリ
└─ package-lock.json npm のファイル
空のディレクトリを作成し、ディレクトリ内で下記を実行します。
npm init -y
npm install webpack webpack-cli st --save-dev
npm install @mapray/ui
webpack.config.js を作成します( webpack の設定ファイル)。
1 2 3 4 5 6 7 8 9 | |
実装
src/index.js を作成します。
1 2 3 4 5 6 7 8 | |
Info
このサンプルコードは、<YOUR_MAPRAY_API_KEY>を、あなたのMapray CloudアカウントのAPI Keyに置き換えるまで、期待通りに動作しません。
package.json に対して下記のように、scripts 要素を追加します。
{
:
"scripts": {
"build": "webpack --mode=production",
"server": "st --no-cache -H 0.0.0.0 --port 7777 --index index.html -d dist"
}
:
}
ビルドします。
npm run build
dist/index.html を作成します。
ビルドした js ファイルを読み込み startApp() を呼び出します。
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Nodeで開発用サーバを実行する
サーバを起動します。
npm run server
http://localhost:7777 へアクセスします。
プロジェクト作成
本説明では、最終的に下記のようなディレクトリ構成となります。
.
├─ dist/ ビルド後の js が出力されるディレクトリ
├─ package.json Node の設定ファイル
├─ src/ ソースファイルのディレクトリ
├─ rollup.config.mjs ビルド設定ファイル
├─ node_modules/ Node の依存ライブラリが保存されるディレクトリ
└─ package-lock.json npm のファイル
空のディレクトリを作成し、ディレクトリ内で下記を実行します。
npm init -y
npm install rollup @rollup/plugin-node-resolve rollup-plugin-postcss postcss st --save-dev
npm install @mapray/ui
rollup.config.mjs を作成します( rollup の設定ファイル)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
package.json の scripts を次のように編集します。
{
:
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "rollup -c",
"server": "st --no-cache -H 0.0.0.0 --port 7777 --index index.html --dir ./dist"
},
:
}
実装
src/index.js を作成します。
コード中の apikey には、Mapray Cloud で取得したAPI Keyを入力します。
1 2 3 4 5 6 7 8 9 | |
Info
このサンプルコードは、<YOUR_MAPRAY_API_KEY>を、あなたのMapray CloudアカウントのAPI Keyに置き換えるまで、期待通りに動作しません。
ビルドします。
npm run build
dist/index.html を作成します。
ビルドした js ファイルを読み込み startApp() を呼び出します。
1 2 3 4 5 6 7 8 9 10 11 12 | |
Nodeで開発用サーバを起動する
サーバを起動します。
npm run server
http://localhost:7777 へアクセスします。
StandardUIViewer の操作¶
マウス操作¶
| 操作 | 動作 |
|---|---|
| 左ドラッグ | 移動 |
| 中ドラッグ | クリック点を中心に回転 |
| 右クリック + 上下ドラッグ | ズーム |
| Crtlキー + 左ドラッグ | カメラを中心に回転 |
| Shiftキー + 左ドラッグ | クリック点を中心に回転 |
| Shiftキー + 右ドラッグ | 高度移動、左右移動 |
キーボード操作¶
| 操作 | 動作 |
|---|---|
| カーソルキー上下 | 前進、後退 |
| カーソルキー左右 | 方向回転 |
| cキー | 画角の拡大 |
| zキー | 画角の縮小 |
| xキー | 画角の初期化(60度) |
オーバーライドでのカスタマイズ¶
StandardUIViewer の関数を override することで、細かな動作をカスタマイズすることができます。
-
開始と終了
- onStart
- onStop
-
画面更新
- onUpdateFrame
- onBlur
-
キーのイベント
- onKeyDown
- onKeyUp
-
マウスのイベント
- onMouseDown
- onMouseMove
- onMouseUp
- onMouseWheel