點環域查詢

點環域查詢

允許使用者自訂查詢點位、查詢半徑,以取得指定之主題地圖,在此查詢範圍內所有圖徵之屬性及空間資料,此功能即點環域查詢。使用點環域查詢功能時,亦會運用主題地圖等其餘API功能,可供點環域查詢之主題地圖詳細清單如下方表格。而在以下說明中,將只針對點環域查詢功能介紹,如何引用主題地圖並疊加至圖台上,請參考詳細之程式範例。

var BufferArea = null;

var Query = new TGOS.TEPointBuffer() //建立TEPointBuffer物件, 準備執行環域查詢使用

function buffer() {

TGOS.TEEvent.addListener(pMap,"click", function(tEvent) { 

//建立滑鼠地圖點擊事件監聽器

var queryRequst = {  //設定點環域查詢條件, 包含圓心(pt)及半徑(radius)

position: pt,

distance: radius

};

Query.identify(TGOS.TEMapServiceId.SHELTERS, TGOS.TEMapId.SHELTERS,

queryRequst,function(result, status){

//使用方法identify進行點環域查詢, 輸入參數包含欲查詢的服務、欲查詢的圖層、

//點環域參數、坐標系統及查詢後的函式, resultstatus分別代表查詢結果及查詢狀態

if (status == TGOS.TEBufferStatus.ZERO_RESULTS) {  //判斷查詢結果是否為查無結果

alert('此範圍查無結果');

return;

} else {  //若查詢產生結果, 則執行以下函式

var attris = result.fieldAttr;  //取得圖徵屬性

var pts = result.position;  //取得圖徵點位

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

var str = 'ID: ' + attris[i][0] + '; Name: ' + attris[i][1]

+ '; Address: ' + attris[i][4];

//建立迴圈後, 以字串方式組合屬性結果, attris[0]為查詢到的第一個圖徵,

//attris[0][0]為第一個圖徵的第一個屬性, 依此類推

var marker =newTGOS.TEMarker(pMap, pts[i], str)

//在迴圈內建立TGMarker物件,將查詢到的所有主題圖徵繪出

markers.push(marker)//將標記點加入到markers陣列

}

}

});

});

}

function PointBufferClick(){

TGOS.TEEvent.addListener(tg3dEarth, "click", function (e) {      //加入滑鼠單擊地圖事件監聽器

if(testFill != null)

{

testFill.setMap(null);

}

 

if(markers != null)

{

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

{

markers[i].setMap(null);

}

}

var Query = new TGOS.TEPointBuffer();

var txtDiv = document.getElementById("msg");  

txtDiv.innerHTML = "";

var dis = parseFloat(document.getElementById("dis").value);

var pt = e.point;

var queryRequst = {  //設定點環域查詢條件, 包含圓心(pt)及半徑(radius)

position: pt,

distance: dis

};

 

Query.identify(TGOS.TEMapServiceId.SHELTERS, TGOS.TEMapId.SHELTERS,

queryRequst, TGOS.TECoordSys.EPSG3857, function(result, status){

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

alert('此範圍查無結果');

return;

} else {

var attris = result.fieldAttr;

var pts = result.position; 

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

var str = 'ID: ' + attris[i][0] + '; Name: ' + attris[i][1]

+ '; Address: ' + attris[i][4];

txtDiv.innerHTML +=str + "<br>";

var marker = new TGOS.TEMarker(tg3dEarth, pts[i], str,null,null);

markers.push(marker);

}

 

var X = parseFloat(pt.x);

var Y = parseFloat(pt.y);

var R = dis / (Math.cos(Y / 180 * Math.PI) * ((6378137.0 * Math.PI) / 180));

var path = [];

var i = 0

for (var a = 0; a <= 360; a += 1)

{

var xp = X + Math.sin(a * Math.PI / 180.0) * R;

var yp = Y + Math.cos(a * Math.PI / 180.0) * R;

path[i] = new TGOS.TEPoint(xp, yp);

i += 1;

}

var lineStr = new TGOS.TELineString(path);

var ring = new TGOS.TELinearRing(lineStr);

var polygon = new TGOS.TEPolygon([ring]);

testFill = new TGOS.TEFill(tg3dEarth,polygon,{

fillColor: '#AA0088',

fillOpacity: 0.2,

strokeColor: '#FF00FF',

strokeWeight: 5,

strokeOpacity: 0.7

});

tg3dEarth.fitBounds(polygon.getEnvelope());

}

});

});

}

可供點環域查詢之主題地圖服務代碼、圖層代碼以及使用授權類別如下表:

服務代碼

圖層代碼

服務名稱

圖層名稱

使用授權

EOC

EOC

中央與地方緊急應變中心

中央與地方緊急應變中心

一般圖資

FIREDEPARTMENT

FIREDEPARTMENT

全國消防機關

全國消防機關

一般圖資

POLICEDEPARTMENT

POLICEDEPARTMENT

全國警察機關

全國警察機關

一般圖資

NASC

NASC

空中勤務總隊

空中勤務總隊

一般圖資

SOCIALSERVICE

SOCIALSERVICE

社會福利服務機構

社會福利服務機構

一般圖資

MEDICAL

MEDICAL

醫療院所

醫療院所

限防救災應用

SHELTERS

SHELTERS

避難收容處所

避難收容處所

一般圖資

NASC_LANDING

NASC_LANDING

直升機緊急救難臨時起降場

直升機緊急救難臨時起降場

一般圖資

HMS

HMS

危險物品場所

危險物品場所

限內部應用

INDUSTRY

INDUSTRY

工商企業

工商企業(全部)

一般圖資

INDUSTRY_A

農、林、漁、牧業

INDUSTRY_B

礦業及土石採取業

INDUSTRY_C

製造業

INDUSTRY_D

電力及燃氣供應業

INDUSTRY_E

用水供應及污染整治業

INDUSTRY_F

營造業

INDUSTRY_G

批發及零售業

INDUSTRY_H

運輸及倉儲業

INDUSTRY_I

住宿及餐飲業

INDUSTRY_J

資訊及通訊傳播業

INDUSTRY_K

金融及保險業

INDUSTRY_L

不動產業

INDUSTRY_M

專業、科學及技術服務業

INDUSTRY_N

支援服務業

INDUSTRY_O

公共行政及國防;強制性社會安全

INDUSTRY_P

教育服務業

INDUSTRY_Q

醫療保健及社會工作服務業

INDUSTRY_R

藝術、娛樂及休閒服務業

INDUSTRY_S

其他服務業

SCHOOL

SCHOOL

各級學校

各級學校(全部)

一般圖資

SCHOOL_B

國民小學

SCHOOL_C

附設國民小學

SCHOOL_D

國民中學

SCHOOL_E

附設國民中學

SCHOOL_F

高級中學

SCHOOL_G

高級職業學校

SCHOOL_H

大專院校

SCHOOL_I

宗教研修學院

SCHOOL_K

特殊教育學校

SCHOOL_M

高中職進修學校

SCHOOL_N

空大及大專校院附設進修學校

 

 

回到上方