路徑規劃導覽
路徑規劃導覽
二維圖台上的路徑規劃功能,在三維立體環境下呈現不同的風貌。由於圖台可以任意變化觀察角度、傾斜,並且模擬真實空間相對位置狀況,因此路徑規劃的結果可以在擬真的狀態下呈現,亦即可以藉由模擬飛行達到路線導覽的效果。另外可以搭配播放工具,播放整個路徑行走的過程。
在實作過程,仍需先以TERoutes()物件進行路徑規劃,取出規劃結果以TELine()物件繪製出來。
var request = { //設定路徑參數
avoidHighways: true, //是否迴避收費道路
blockpoints: blocks, //設定禁行點
coordinateSystem: 'EPSG:4326', //指定坐標系統
destination: dest, //設定終點
origin: ori, //設定起點
shortestRoute: false, //使用最短路徑方法進行分析
wayPoints: wpts //設定經過點
};
RouteAnalysis.route(request, function(result){ //執行路徑規劃
var NavigateInfo = ""; //建立空字串, 準備寫入導航資訊
var routes = result.routes; //取出規劃結果
RoutePathes = routes[0].overviewPath; //由規劃結果中取出路徑(TGLineString形式)
var TotalDist = routes[0].distance; //取出規劃結果總路徑長度
var TotalTime = routes[0].time; //取出規劃結果總耗時
var string0 = '路徑總長度 = ' + TotalDist.toFixed(0) + ' 公尺' + '<br>' + '總耗時 = ' + (TotalTime/60).toFixed(0) + ' 分 ' + (TotalTime%60) + ' 秒<br><br>';
NavigateInfo += string0; //組合總長度及總耗時字串並加入並加入NavigateInfo
var line = new TGOS.TELine(tg3dEarth, RoutePathes, { //將規劃路徑繪出, 使用TGLine物件
strokeColor: '#33CCFF',
strokeWeight: 5,
strokeOpacity: 0.7,
LineType : TGOS.TELineType.RoundPipe
});
tg3dEarth.fitBounds(routes[0].bounds);
});
在取出路徑相關資訊後,即可建立飛行工具,並將其path資訊做為飛行路徑,可以設定飛行的速度、傾角、高度等參數。另外,也可以配合播放工具,做出播放、暫停、停止等效果。
function playRoute(){
var viewRoute = new TGOS.TEViewRoute(); //建立飛行工具物件
viewRoute.routeFly(tg3dEarth,{ //使用路徑飛行功能
path : RoutePathes.getPath(), //讀入路徑
speed : 500, //飛行速度
dip:75, //傾角
height:50 //飛行高度
});
}