道路定位
道路定位
提供特定道路的查詢定位,使用者可以輸入指定的道路名稱,取得該道路的範圍(TGEnvelope)及定位點坐標,可將地圖移動縮放至建議的視域範圍,並將定位點坐標置於地圖中心、以標記標示出位置。要注意的是,進行道路定位時,建議一併輸入行政區名稱,以避免常用路名(例如中山路)混淆的狀況。詳細範例如下。
var marker = null;
function locate() {
if (marker) {
marker.setMap(null); //假設地圖上已存在查詢後得到的標記點, 則先行移除
}
var RName = document.getElementById('RoadName').value;
var LService = new TGOS.TGLocateService(); //宣告一個新的定位服務
var request = { //設定定位所需的參數, 範例使用roadLocation, 進行道路名稱定位
roadLocation: RName
};
LService.locateTWD97(request, function(result, status){
//進行定位查詢, 並指定回傳資訊為TWD97坐標系統
var env = result[0].geometry.viewport;
//以geometry.viewport取得系統建議的視域範圍(TGEnvelope)
var loc = result[0].geometry.location;
//利用geometry.location取得點位(TGPoint)
LService.fitBounds(pMap, env); //將地圖畫面縮放至第一個查詢結果的視域範圍
LService.setCenter(pMap, loc); //以道路定位點為中心平移地圖
marker = new TGOS.TGMarker(pMap, loc, RName); //繪出定位點
});
}