地標分類最近鄰查詢

API使用範例:地標分類最近鄰查詢

情境假設:

地標分類最近鄰查詢藉由TGOS.TGPoiNear ()物件開啟,並設定要套疊地標分類、資訊內容、物件參數等。使用者可以取得環域範圍內的地標,詳細屬性資料,甚至可以變更地標的圖示樣式。 

此範例示範查詢的地標為「政府機關,使用者點擊圖面後,即可查到最近的政府機關位置及其相關資訊。

 

TGOS MAP API建置方式:

 

 

 

1.      初始化圖台,宣告TGOnlineMap地圖物件並設定坐標系統

 

function InitWnd() {        

        pOMap = document.getElementById("TGMap");

        var mapOptions = {

                disableDefaultUI: true //關閉所有地圖介面控制項

        };

        pMap = new TGOS.TGOnlineMap(pOMap, TGOS.TGCoordSys.EPSG3826, mapOptions); //宣告TGOnlineMap地圖物件並設定坐標系統

        pMap.setCenter(new TGOS.TGPoint(168840, 2544238)); //指定地圖中心點

        pMap.setZoom(9); //指定地圖初始層級

        near(); //執行函式near

 

}

 

2.  建立TGPoiNear物件,取得查詢結果

 

function near() {

        TGOS.TGEvent.addListener(pMap, "click", function(tEvent) { //建立滑鼠地圖點擊事件監聽器

                if (cpt) //假設地圖上已存在圖形, 則先行移除

                        cpt.setMap(null);

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

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

                                markers[i].setMap(null);

                        }

                markers = [];

        }

 

        var pt = tEvent.point; //取得滑鼠點擊位置的坐標點位,為TGPoint物件形式

        cpt = new TGOS.TGMarker(pMap, pt, null, markerImg);

 

       -//----------------最近鄰查詢部份------------------

        var queryRequst = { //設定查詢條件

                position: pt

        };

        Query.identify(TGOS.KindInfo.POI991, queryRequst, TGOS.TGCoordSys.EPSG3826, function(result, status){

        //使用方法identify進行最近鄰查詢, 輸入參數包含欲查詢的服務、欲查詢的圖層、坐標系統及查詢後的函式, result及status分別代表查詢結果及查詢狀態

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

                        //alert('此點附近無結果');

                        return;

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

 

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

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

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

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

                                console.log(str);

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

                                var marker = new TGOS.TGMarker(pMap, pts[i], str, img2); //在迴圈內建立TGMarker物件, 將查詢到的所有主題圖徵繪出

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

                        }

                }

        });

});

 

}

 

 

 

 

 

 

 

 

 

 

 

 

回到上方