於TGOS底圖上套疊KML圖層

API使用範例:透過URL網址加入KML圖層

 

情境假設:

建立一個下拉式選單並提供兩個KML網址連結,使用者只需要透過在選單中選擇欲加入的圖層,即可快速的將KML圖層加至圖面,並且提供切換套疊圖層的功能。

 

TGOS MAP API建置方式:

 

1.      建立下拉式選單:
        在網頁的html內,加入一個<select>下拉選單物件,將id設定好之後加入兩個KML連結。作為下拉式選單的選項。

          <!--建立下拉選單提供預設兩組KML網址-->
          <select id="urlList">
                  <option>http://api.tgos.tw/TGOS_API/wrarb.kml</option>
                  <option>http://api.tgos.tw/TGOS_API/GWREGION.kml</option>
          </select>


2.      建立地圖:
        加入一張TWD97坐標的TGOS底圖,並透過TGMapOptions將地圖類型控制項關閉。

  function InitWnd() {
                  var pOMap = document.getElementById("TGMap");
                  var mapOptions = {
                          mapTypeControl: false      //mapTypeControl(
關閉地圖類型控制項)
                  };
                  pMap = new TGOS.TGOnlineMap(pOMap, TGOS.TGCoordSys.EPSG3826,  
             mapOptions);
          }


3.      加入KML圖層:
3.1 
取得KML連結:
        
使用document.getElementById()的方法,將目前下拉選單內被選擇到的網址取出,並加入到變數url內。

          var list = document.getElementById("urlList");
          var url = list.options[list.selectedIndex].text;


3.2 
加入KML圖層:
        宣告一個新的TGKmlLayer物件,並加入剛才由下拉選單所取出的KML連結。在範例中我們另外透過KmlLayerOptions來定義KML疊加層的一些屬性,其中包括---
  map:  
顯示KML圖層的地圖
  preserveViewport:  
疊加KML後將地圖畫面縮放至KML的範圍若設為false則取消這個功能
  suppressInfoWindows: 
可點選KML圖徵顯示訊息視窗若設為true則無法顯示訊息視窗

          kmlLayer = new TGOS.TGKmlLayer(url, {
                  map: pMap,
                  suppressInfoWindows: false,
                  preserveViewport: true
          });


3.3 
移除KML圖層:
        
為了避免使用者反覆加入相同或不同的KML圖層,而造成圖面混亂。因此我們在加入每個KML之前會先透過一小段程式來進行判斷,如果加入KML之前地圖上存在已加入的KML圖層,則先行移除。在這邊可以使用物件TGKmlLayerremoveKml()方法來進行KML圖層移除。

          if (kmlLayer) {
                   kmlLayer.removeKml();
          }

回到上方