海底Widget使用教學
本章將說明海底Widget的使用方式。
[info] 小提示:
程式碼連結:https://doc-3dgdp.colife.org.tw/samplecode/#src/testweb/widget-seabed-sample/
[info] 小提示:
構成本Widget使用之Function:
ov.TerrainView.setDrawTerrainSetting
ov.TerrainView.inputSurfacePoint
ov.TerrainView.getAbsHeight
ov.TerrainView.getTerrainOverlay
ov.TerrainView.removeTerrainOverlay
ov.TerrainView.addTerrainWMTSOverlay
初始化Widget
這裡先撰寫一個最基本的圖台。
並在圖台中加入按鈕以控制Widget開關。
[info] 小提示:
- 此Widget有使用到
Material ICON
,可自行下載引入或使用線上CDN。
index.html
:
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>海底Widget</title>
<script src="PGWeb3D.min.js"></script>
<link rel="stylesheet" type="text/css" href="./css/PGWeb3D.css" />
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/icon?family=Material+Icons" />
</head>
<body>
<div id="MyControl" style="position: absolute;z-index:1;color: white;background-color:black;">
<button id="openWidget" onclick="openWidget()" style="left: 5px; top: 7px; position: absolute; width: 120px; border-radius: 7px;">開啟Widget</button>
</div>
<div id="MyMap" style="width:100%;height:100%;position:absolute;top:0;left:0"></div>
<script src="main.js"></script>
</body>
</html>
main.js
:
var terrainview = new ov.TerrainView("MyMap");
terrainview.openTerrain(
{
url: "http://127.0.0.1:8080",
identifier: "terrain",
callback: openCallback,
urlTemplate: "oview.aspx?{URL}"
}
);
function openCallback (result) {
//設定底圖
terrainview.setBaseLayer({
url: "BING_MAP",
identifier: "IMAGE",
urlTemplate: "{URL}"
});
}
再來我們要把openWidget按鈕點擊事件
加進我們撰寫好的main.js
中。
main.js
:
var terrainview = new ov.TerrainView("MyMap");
terrainview.openTerrain(
{
url: "http://127.0.0.1:8080",
identifier: "terrain",
callback: openCallback,
urlTemplate: "oview.aspx?{URL}"
}
);
function openCallback (result) {
//設定預設底圖
terrainview.setBaseLayer({
url: "BING_MAP",
identifier: "IMAGE",
urlTemplate: "{URL}"
});
}
// 加入開啟海底 Widget的按鈕事件
function openWidget() {
new window.ov.Widget.SeaBed({
view: terrainview,
layerParam: {
url: "http://127.0.0.1:8080/wmts",
identifier: "NTU_Space_contour",
layername: "SeabedLine",
urlTemplate: "https://sample.pilotgaea.com.tw/Oview.aspx?{URL}"
}, // 匯入海底等深線圖資
currentSrc:
"https://sample.pilotgaea.com.tw/demo/index/src/testweb/sea/SADCP_std.csv"
// 匯入洋流資料
});
var button = document.getElementById("openWidget");
button.disabled = true;
setTimeout(function () {
button.disabled = false;
}, 1000);
}
到目前為止,我們已成功將開啟海底Widget加入圖台中。