時間軸控制飛覽
API使用範例:時間軸控制飛覽
情境假設:
使用者套疊含有tour資訊之KML或KMZ檔,透過播放、暫停、停止等設定,播放檔案中的tour內容,或是指定時間,可展示tour在該時間的視點位置。
TGOS MAP API建置方式:
1. 初始化地圖:
首先宣告一個TEOnlineMap( )物件,在網頁上建立一個地圖,並選擇座標系統。
var tg3dEarth = null;
function documentLoad()
{
var pBody = document.getElementById("tgos_3d");
tg3dEarth = newTGOS.TEOnlineMap(pBody,{
drawingControl:true,
});
}
2. 建立KML物件
建立出TEKmlLayer物件,供後續tour資訊讀取應用。
function onTourKMLClick(){
kmlLayer = newTGOS.TEKmlLayer(
'http://210.61.8.232/TG3D_API/sampleFile/KeelungRiver.kmz',{
//建立帶有Tour資訊的KML物件
map:tg3dEarth
});
}
3. 解譯KML物件
讀入KML物件後,由於KML檔案支援資料夾結構,因此每個檔案放置tour資訊的位置可能不大一樣,因此需要進行解譯判讀,取第一個tour進行播放。
function checkFeatureObj(obj){
if(obj instanceof TGOS.TEKMLFeatureGroup){ //搜尋檔案中第一個tour
return findFirstTour(obj);
}else if(obj instanceof TGOS.TEKMLFeatureTour){
return obj;
}
return null; //若檔案中沒有tour則回傳null
}
function findFirstTour(obj){ //取得檔案中第一個tour
var fCount = obj.getFeatureCount();
for(var i = 0 ;i<fCount;i++){
var obj2 = checkFeatureObj(obj.getFeature(i));
if(obj2 != null){
return obj2;
}
}
}
4. 建立播放方法
由取得的tour資訊,即可利用物件,呼叫play、stop、reset、setTime等方法,讓畫面開始、暫停播放,重設播放內容,或指定特定時間呈現。
function onPlayTourClick(){
var obj = kmlLayer.getKMLFeature(); //取得kml檔案物件
var tour = checkFeatureObj(obj); //取得kml檔tour內容
if(tour != null){
tour.play(); //播放tour
}
}
function onPlayTourClick(){
var obj = kmlLayer.getKMLFeature(); //取得kml檔案物件
var tour = checkFeatureObj(obj); //取得kml檔tour內容
if(tour != null){
tour.stop(); //暫停tour
}
}
function onPlayTourClick(){
var obj = kmlLayer.getKMLFeature(); //取得kml檔案物件
var tour = checkFeatureObj(obj); //取得kml檔tour內容
if(tour != null){
tour.reset(); //重設tour
}
}
function onPlayTourClick(){
var obj = kmlLayer.getKMLFeature(); //取得kml檔案物件
var tour = checkFeatureObj(obj); //取得kml檔tour內容
if(tour != null){
tour.setTime(15); //指定畫面到tour第15秒時
}
}