路徑規劃
路徑規劃
路徑規劃採用服務方式提供。
服務網址:http://gis.tgos.tw/TGRoute/TGRoute.aspx,查詢傳送之參數說明如下:
waypoints:使用WKT格式,以多點方式設定,起點為第一點,終點為最後一點,中間其他的點為經過點,輸入坐標系統採用TWD97,中央經線121。
barrier:禁行通過點,使用WKT格式,可以多點方式設定。
format:輸出格式,設為xml時輸出為xml格式,設為json時輸出為json格式,其他值則輸出jsonp格式,提供javascript介接用。
avoidhighway:是否避開高速公路;設為true時會避開高速公路,false值則不會避開高速公路。
使用範例說明如下:
●範例1
規劃條件:
起始點:(303612.53700486914 2768690.081656828)
中間經過點:(296047.3820081763 2768915.1148647685)
終點:(259040.16721320243 2736741.6441568285)
無障礙點
允許經過高速公路
輸出為json格式
服務網址字串:
http://gis.tgos.tw/TGRoute/TGRoute.aspx?wayPoints=MULTIPOINT((303612.53700486914 2768690.081656828),(296047.3820081763 2768915.1148647685),(259040.16721320243 2736741.6441568285))&format=json
●範例2
規劃條件:
起始點:(281552.7972359278 2764658.371687314)
無中間經過點
終點:(280018.21390259446 2758017.3300206475)
障礙點:(303790.82192766626 2770233.605434166)
避開高速公路
輸出為xml格式
服務網址字串:
http://gis.tgos.tw/TGRoute/TGRoute.aspx?waypoints=MULTIPOINT((281552.7972359278 2764658.371687314),(280018.21390259446 2758017.3300206475))&barrier=MULTIPOINT((303790.82192766626 2770233.605434166))&avoidhighway=true&format=xml
附註:
傳回的結果座標都是經緯度的格式,經緯度的部分有經過編碼壓縮,以下為javascript語言撰寫的解碼函式,參數"precision"需設為6。
var decompress = function(encoded, precision) {
precision = Math.pow(10, -precision);
var len = encoded.length, index = 0, lat = 0, lng = 0, array = [];
while (index < len) {
var b, shift = 0, result = 0;
do {
b = encoded.charCodeAt(index++) - 63;
result |= (b & 0x1f) << shift;
shift += 5;
}
while (b >= 0x20);
var dlat = ((result & 1) ? ~(result >> 1) : (result >> 1));
lat += dlat;
shift = 0;
result = 0;
do {
b = encoded.charCodeAt(index++) - 63;
result |= (b & 0x1f) << shift;
shift += 5;
}
while (b >= 0x20);
var dlng = ((result & 1) ? ~(result >> 1) : (result >> 1));
lng += dlng;
array.push(lat * precision);
array.push(lng * precision);
}
return array;
}