於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圖層,則先行移除。在這邊可以使用物件「TGKmlLayer」的「removeKml()」方法來進行KML圖層移除。
if (kmlLayer) {
kmlLayer.removeKml();
}