標記群聚點擊放大

API使用範例:標記群聚點擊放大

情境假設:

  當使用者需要在地圖上呈現出大量的點資料內容時,會因為縮放階層所造成的顯示範圍變化,使得這些點資料在較小比例尺中呈現不易,點資料並無法被使用者有效辨認。在實務上的解決辦法,多會運用群聚的方式來簡化資料的呈現數量,將地圖範圍中各資料間的距離所代表的權重計算出來後,便可將具有空間上較高權重的資料比此群聚在一塊顯示,並根據不同的縮放階層調整群聚的結果。

TGOS MAP API建置方式:

1.初始化圖台並設定之後要用來存放群聚標記點的物件容器(mCluster)。

var mapDiv, map, markers, mCluster;

        function main() {

            mapDiv = document.getElementById("TGMap");

            map = new TGOS.TGOnlineMap(mapDiv, TGOS.TGCoordSys.EPSG3826               

        }

 

2.呼叫TGOS MAP APITGOS.TGMarkerCluster()類別來使用群聚標記點功能,並透過設置該類別中的各方法屬性參數,來達到客製化制訂群聚標記點呈現的方式。

        function addMarkerClusters() {                     //使用群聚標記點功能

            mCluster = new TGOS.TGMarkerCluster(map, markers, {}); //建立群聚標記點物件

            mCluster.setMaxZoom(21);                                  //設定群聚標記點最大縮放範圍         

            mCluster.setVisible(true);                              //設定群聚標記點是否為顯示狀態

            mCluster.setSearchBounds(30);                  //設定群聚標記點的搜尋範圍(單位px)

             mCluster.redrawAll(true);                              //是否重新繪製群聚標記點物件

            mClusters.push(mCluster);

 

3.使用TGOS.TGEvent()類別中的addListener()方法來建立一個地圖監聽事件clusterclick,以偵測群聚點標記的點擊事件,讓地圖可以做出符合點範圍的移動(fitBounds())與縮放(setZoom())的動作。 

            TGOS.TGEvent.addListener(mCluster, "clusterclick", function (e) {

                if (e.specifiedCluster.length > 1) {

                    map.fitBounds(e.clusterEnvelope);

                    map.setZoom(map.getZoom() - 1);

                }

回到上方