新增、移除圖層


[info] 小提示:

程式碼連結:我是連結


對MapServer來說,2D的圖層中有影像圖層、向量圖層及自畫圖層三種類型,但對client來說都是取得圖片,差別在於使用 WMTS 或 WMS 去取得。

使用下面這段程式碼,可以新增來自於MapServer經由WMTS取得的一張2D影像圖層

var host = " http://127.0.0.1:8080/wmts?"; //以本機MapServer為例。
var layerName = "範例影像圖層";
var wmtsUrl = host + "Layer=" + layerName + "&style=default&TileMatrixSet=EPSG:3857&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image/png&TileMatrix={TileZ}&TileCol={TileC}&TileRow={TileR}";
var Patterns = [wmtsUrl];
var im = mapDoc.NewTileMapLayerByMatrixSet("OviewEarth",Patterns, m, -1);

也可以讀其他來源的影像圖層,比如說使用BING、TGOS...等。

var wmtsUrl = "http://ecn.t0.tiles.virtualearth.net/tiles/h{QuadKey}?g=3649&n=z"; 
var Patterns = [wmtsUrl];
var im = mapDoc.NewTileMapLayerByMatrixSet("BING_MAP", Patterns, m, -1);

另外也能夠新增 WMS 圖層

var layerName = "範例向量圖層";
var wmsId = mapDoc.NewWMSLayer("Vector", host + "/wms?", [layerName], ENUM_IMAGE_FORMAT.PNG);

WMS須注意使用的格式,如果是像JPEG那樣沒有Alpha的格式,會導致透明部分以白色顯示。 這裡則使用兩種不同來源的圖層,需要注意引入順序,如沒有指定插入索引,先加入的會在下層(被蓋過)

var layerName = "範例影像圖層";
var wmtsUrl = host + "/wmts?Layer=" + layerName + "&style=default&TileMatrixSet=EPSG:3857&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image/png&TileMatrix={TileZ}&TileCol={TileC}&TileRow={TileR}";
var Patterns = [wmtsUrl];
var im = mapDoc.NewTileMapLayerByMatrixSet("OviewEarth", Patterns, m, -1);

var layerName = "台灣影像圖層";
var wmtsUrl = host + "/wmts?Layer=" + layerName + "&style=default&TileMatrixSet=EPSG:3857&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image/png&TileMatrix={TileZ}&TileCol={TileC}&TileRow={TileR}";
var Patterns = [wmtsUrl];
var im = mapDoc.NewTileMapLayerByMatrixSet("OviewTW", Patterns, m, -1);

[info] 小提示:

上述例子中各個URL中有以下幾個指定字,都是以大括弧包圍。

O’view TGOS用 BING用
{TileC} {TGOS_X} {QuadKey}
{TileR} {TGOS_Y} -
{TileZ} {TGOS_S} -

實際上,如果需要使用bing map作為來源的話,內部已經建立URL相關格式,可以參考附錄:URL關鍵字章節

新增後可以移除

mapDoc.RemoveLayer(im);

也可以使用名稱來移除

mapDoc.RemoveLayerByName("OviewTW");

或是想要移除所有的圖層

mapDoc.RemoveAllLayers();
Copyright © PilotGaea 2022 Version:13.0 all right reserved,powered by Gitbook修訂時間: 2024-01-31 10:41:30