時間軸控制飛覽

API使用範例:時間軸控制飛覽

 

情境假設:

使用者套疊含有tour資訊之KMLKMZ檔,透過播放、暫停、停止等設定,播放檔案中的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資訊,即可利用物件,呼叫playstopresetsetTime等方法,讓畫面開始、暫停播放,重設播放內容,或指定特定時間呈現。

function onPlayTourClick(){

    var obj = kmlLayer.getKMLFeature();  //取得kml檔案物件

    var tour = checkFeatureObj(obj); //取得kmltour內容

    if(tour != null){

        tour.play();  //播放tour

    }

}

function onPlayTourClick(){

    var obj = kmlLayer.getKMLFeature();  //取得kml檔案物件

    var tour = checkFeatureObj(obj); //取得kmltour內容

    if(tour != null){

        tour.stop();  //暫停tour

    }

}

function onPlayTourClick(){

    var obj = kmlLayer.getKMLFeature();  //取得kml檔案物件

    var tour = checkFeatureObj(obj); //取得kmltour內容

    if(tour != null){

        tour.reset();  //重設tour

    }

}

function onPlayTourClick(){

    var obj = kmlLayer.getKMLFeature();  //取得kml檔案物件

    var tour = checkFeatureObj(obj); //取得kmltour內容

    if(tour != null){

        tour.setTime(15);  //指定畫面到tour15秒時

    }

}

 

回到上方