圖面查詢
圖面查詢
當主題圖磚、主題地圖疊加於地圖平台上時,允許使用者直接點擊圖面上的圖徵符號,取得該圖徵的屬性資料,此功能即圖面查詢。若要使用圖面查詢功能,必須先疊加一可供圖面查詢之主題圖磚或主題地圖,詳細清單如下方表格,而在以下說明中,將只針對圖面查詢功能介紹,如何引用主題圖磚或主題地圖並疊加至圖台上,請參考詳細之程式範例。
function ThemeClick(){
if (GOverlay) { //若畫面中已存在主題地圖的影像疊加層, 先行移除
GOverlay.setMap(null);
GOverlay = null;
}
var Bounds = tg3dEarth.getBounds(); //取得目前地圖的邊界值
var ThemeLayer = newTGOS.TEThemeLayer(); //宣告一個新的主題地圖物件
var req = { //依照目前圖面的邊界來取得主題地圖
left: Bounds.getLeft(),
right: Bounds.getRight(),
top: Bounds.getTop(),
bottom: Bounds.getBottom(),
height: 480, //取得地圖影像的寬高則依照目前地圖框的大小
width: 640
};
//取得主題地圖, 第一個及第二個參數為服務名稱及服務圖層的代碼, function handler()內的url則是取得伺服器回傳圖片的網址
ThemeLayer.getThemePic(TGOS.TEMapServiceId.SHELTERS, TGOS.TEMapId.SHELTERS, req, function handler(url) {
var img = newTGOS.TEImage(); //新增一個TGImage物件, 套用伺服器回傳的主題地圖url
img.setUrl(url);
//document.write(url);
GOverlay = newTGOS.TEGroundOverlay(tg3dEarth,img,Bounds,0.5,null);
tg3dEarth.showDebugMsg(url,false);
});
}
var Query = newTGOS.TEFeatureIdentify();
function FeatureIdentifyClick(){
TGOS.TEEvent.addListener(tg3dEarth,"click", function (e) { //加入滑鼠單擊地圖事件監聽器
var pt = e.point;
var txtDiv = document.getElementById("msg");
Query.identify(TGOS.TEMapServiceId.SHELTERS, TGOS.TEMapId.SHELTERS, pt, TGOS.TECoordSys.EPSG3857,function(result, status){
if (status == TGOS.TEIdentifyStatus.ZERO_RESULTS) {
txtDiv.innerHTML ='查無結果, 請重新點選圖徵查詢';
return;
} else {
var attris = result.fieldAttr;
var str = 'ID: ' + attris[0][0] +'<br>Name: ' + attris[0][1] +'<br>Address: ' + attris[0][2];
txtDiv.innerHTML =str;
}
});
});
}
可供圖面查詢之主題圖磚與主題地圖服務代碼、圖層代碼以及使用授權類別如下表: