向量圖磚套疊於TGOS圖台

   向量圖磚套疊於TGOS圖台

  

在本範例中,我們將示範如何將以向量式圖磚輸出之面量圖,套疊於TGOS MAP API所建立之圖台 

的展示方法,有關向量式圖磚詳細設定說明請參照匯出向量式圖磚 

其做法依序為:

 

1.     建立一個客製化圖層customLayer,並設定他的寬與高。 

var mapDiv, map, smap; 

        var CustomLayer = function (map) {                    //客制化圖層 

                     this.width = 960; 

                     this.height = 500; 

            this.setMap(map); 

        }

 

2.   由於要將圖磚套疊在TGOS MAP API建立的圖台上,須利用TGOS MAP API

      TGOS.TGOverlayView之方法進行套疊。 

       CustomLayer.prototype = new TGOS.TGOverlayView();     //繼承TGOS.TGOverlayView

 

3.     利用TGOS.TGOverlayViewonAdd方法設定要疊加的圖層,其座標系、寬度

       高度以及顯示的順序。 

        var layer = ""; 

        var data = null; 

        CustomLayer.prototype.onAdd = function () {       //實做onAdd,設定疊加層 

            var panes = this.getPanes();            //取得欲套疊的地圖承載層 

            var mapLayer = panes.overlayviewLayer; 

            this.mSRS = this.map.getCoordSys();             //設定疊加層座標系統

            this.div = document.createElement("div");         //設定疊加層HTML 物件(DIV) 

            this.div.id = "aa"; 

            this.div.style.position = "absolute"; 

            this.div.style.width = "100%";             //設定定疊加層寬度 

            this.div.style.height = "100%";            //設定定疊加層高度 

            this.div.className = "stations"; 

            this.div.style.zIndex  = "10000";         //設定定疊加層HTML物件 Style 

            mapLayer.appendChild(this.div);           //div加入至現有圖層中 

            init(map.getBounds()); 

        }

 

4.   如有需要繪製物件疊加層,可利用TGOS.TGOverlayViewonDraw方法進行設

      定,在本範例中因不需繪製物件,故無指定物件內容。 

       CustomLayer.prototype.onDraw = function () {}         //實做onDraw

 

5.     利用TGOS MAP API建立圖台之地圖,設定其座標系統,並建立圖層。 

        function onload() { 

            mapDiv = document.getElementById("mapDiv"); 

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

            var customLayer1 = new CustomLayer(map);          //建立圖層 

 

6.    利用TGOS.TGEvent.addListener方法去監聽 tgos zoom_changed idle event

    ,當tgos接收到 zoom_changed改變時 把env 傳進去ZoomTo(env),使圖台之互動

     同步。  

            TGOS.TGEvent.addListener(map, 'zoom_changed', function () { 

                var env = map.getBounds(); 

                smap.ZoomTo(env); 

            }); 

            TGOS.TGEvent.addListener(map, 'idle', function () { 

                var XY = map.getCenter();

                 smap.setCenter(XY); 

            }); 

        }

 

7.     在方法drawStatMap裡的option圖層參數設定增加closeMapObj,用來關閉地圖

      上面的其他元件,僅保留向量磚資訊。該設定預設為false,故欲匯出向量式圖磚疊

       加TGOS圖台需開啟此設定。 

            var option = { 

                pChoropleth: pChoropleth, 

                exportVectorTile: true, 

                quickDraw: false, 

                opacity: 0.8, 

                envelope: env, 

                closeMapObj: true 

        };

回到上方