建立導航
建立導航
路徑規劃提供在TWD97及WGS84坐標系統上運算,使用者指定出發點與目的地,程式將自動提供規劃路徑,並可以選擇顯示路徑距離。此外路徑規劃功能中也提供進階路徑規劃功能,包括:中繼點路徑規劃服務及禁行通行點之路徑規劃,並可指定路徑規劃之結果距離單位採用公制系統或英制系統。要注意的是,建立一個新的路徑規劃,即使沒有使用中途經過點與禁止通行點,仍需在程式中宣告建立起空的中途經過點及禁止通行點陣列,並於request中列出,詳細範例如下。
function CalcRoute() {
var blocks = new Array(); //建立空的禁行點陣列
var ori = new TGOS.TGPoint(303894, 2773234); //設定起點
var dest = new TGOS.TGPoint(306108, 2770451); //設定終點
var wpts = new Array(); //建立空的中途經過點陣列
var p1 = new TGOS.TGMarker(pMap, ori, '起點'); //在地圖上繪出所有點位
var p2 = new TGOS.TGMarker(pMap, dest, '終點');
var RouteAnalysis = new TGOS.TGRoutes(); //宣告路徑規劃物件
var request = { //設定路徑參數
avoidHighways: true, //是否迴避收費道路
blockpoints: blocks, //設定禁行點
coordinateSystem: "EPSG:3826", //指定坐標系統
destination: dest, //設定終點
origin: ori, //設定起點
shortestRoute: true, //使用最短路徑方法進行分析
wayPoints: wpts //設定經過點
};
RouteAnalysis.route(request, function(result){ //執行路徑規劃
var NavigateInfo = ""; //建立空字串, 準備寫入導航資訊
var routes = result.routes; //取出規劃結果
var pathes = 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.TGLine(pMap, pathes, { //將規劃路徑繪出, 使用TGLine物件
strokeColor: '#3300FF',
strokeWeight: 5,
strokeOpacity: 0.7
});
});
}