地標定位

地標定位

地標定位功能支援使用者輸入地標名稱字串,API將取得並回傳所有符合查詢文字之地標資訊。依據不同的使用情境,可以將這些資訊條列於網頁上,或是以標記的方式標示於圖上。本範例將所有符合查詢文字之地標以標記方式呈現於圖台上,並依查詢結果調整視域範圍;若在無任何符合查詢文字的狀況下,開啟警示視窗告知查無此地標點,詳細範例如下。

var markers = new Array();

function locate() {

if (markers.length > 0) {  //假設地圖上已存在查詢後得到的標記點則先行移除

for (var i = 0; i < markers.length; i++) {

markers[i].setMap(null);

}

markers = [];          

}

 

var PName = document.getElementById('PoiName').value;

var LService = new TGOS.TGLocateService();  //宣告一個新的定位服務

var request = {                //設定定位所需的參數範例使用poi

poi: PName

};

LService.locateTWD97(request, function(result, status){ 

//進行定位查詢並指定回傳資訊為TWD97坐標系統

if (status == TGOS.TGLocatorStatus.ZERO_RESULTS) { 

//若查無該POI則跳出警告訊息並退出

alert('查無此地標點');

}

else {

for (var i = 0; i < result.length; i++) {  //取得所有符合查詢文字的POI

var geometry = result[i].geometry.location; 

//利用geometry.location取得點位(TGPoint)

var tip = result[i].poiName;  //取得POI完整名稱

var marker = new TGOS.TGMarker(pMap, geometry, tip)

//TGMarker表示POI位置

markers.push(marker);

 

var env = result[i].geometry.viewport; 

//geometry.viewport取得系統建議的視域範圍(TGEnvelope)

if (i == 0)

LService.fitBounds(pMap, env)

//將地圖畫面縮放至第一個查詢結果的視域範圍

}

}

});

}

 

回到上方