Image Layer
Mapray JS は地表面に表示する画像について、タイル画像として任意の画像を表示できます。
また、レイヤーとしてタイル画像を重ねることも可能です。
タイル画像とは
Image Layer で使用するデータはタイル状に画像を並べたものです。
国土地理院の 地理院タイル と互換性があり、簡単に表示できます。
地図画像変更サンプルコード
Mapray JS ではデフォルトの地図画像として国土地理院の 全国最新写真 を表示しています。
ここでは 標準地図 に変更する例を示します。
変更するには StandardUIViewer のコンストラクタの引数として指定します。
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42 | <!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script src="https://resource.mapray.com/mapray-js/v0.9.6/mapray.min.js"></script>
<script src="https://resource.mapray.com/ui/v0.9.6/maprayui.min.js"></script>
<link rel="stylesheet" href="https://resource.mapray.com/styles/v1/mapray.css">
<style>
html, body, div#mapray-container { margin: 0; padding: 0; height: 100%; }
</style>
</head>
<body>
<div id="mapray-container"></div>
</body>
</html>
<script>
// Set up your apikey, which can be created in Mapray Cloud.
const apikey = "<YOUR_MAPRAY_API_KEY>";
const uiviewer = new maprayui.StandardUIViewer( "mapray-container", apikey, {
image_provider: new mapray.StandardImageProvider( {
url: "https://cyberjapandata.gsi.go.jp/xyz/std/",
format: ".png",
min_level: 0,
max_level: 18
})
});
uiviewer.setCameraPosition({
longitude: 138.73133611,
latitude: 35.35990555,
height: 5000000
});
uiviewer.setLookAtPosition({
longitude: 138.73133611,
latitude: 35.35990555,
height: 3776
});
</script>
|
!!! info
このサンプルコードは、<YOUR_MAPRAY_API_KEY>を、あなたのMapray CloudアカウントのAPI Keyに置き換えるまで、期待通りに動作しません。
Note
Viewer.setImageProvider を用いて、動作中に地図画像を切り替えることもできます
Layer 表示サンプルコード
ここでは、国土地理院の 標準地図 をレイヤーに追加して表示する例を示します。
またレイヤーの透過度を 50% に設定します。
StandardImageProvider の引数として、使用するタイル画像の拡張子(.png または .jpg)とズームレベルを指定しています。
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 | <!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script src="./v0.10.0/mapray.min.js"></script>
<script src="./v0.10.0/maprayui.min.js"></script>
<link rel="stylesheet" href="./v0.10.0/mapray.css">
<style>
html, body, div#mapray-container { margin: 0; padding: 0; height: 100%; }
</style>
</head>
<body>
<div id="mapray-container"></div>
</body>
</html>
<script>
async function main() {
// Set up your apikey, which can be created in Mapray Cloud.
const apikey = "<YOUR_MAPRAY_API_KEY>";
// The StandardUIViewer in the ui package includes mouse-based camera manipulation.
const uiviewer = new maprayui.StandardUIViewer( "mapray-container", apikey);
await uiviewer.addLayer( new mapray.StandardImageProvider( {
url: "https://cyberjapandata.gsi.go.jp/xyz/std/",
format: ".png",
min_level: 2,
max_level: 18
}));
uiviewer.viewer.layers.getLayer(0).setOpacity( 0.5 );
uiviewer.setCameraPosition({
longitude: 138.73133611,
latitude: 35.35990555,
height: 5000000
});
uiviewer.setLookAtPosition({
longitude: 138.73133611,
latitude: 35.35990555,
height: 3776
});
}
main();
</script>
|
Warning
レイヤー追加は非同期で処理されるため、 await や then で追加処理完了を待ってからレイヤーに対する処理を行う必要があります。
実行結果