超過 WMTS 最大縮放層級後,仍維持圖層顯示的方法

許多 WMTS(Web Map Tile Service)圖磚服務都會設定可顯示的縮放層級範圍,包括最小縮放層級(Min. Zoom Level)與最大縮放層級(Max. Zoom Level)。當使用者持續放大地圖,超過 WMTS 服務所提供的最大縮放層級後,QGIS 便可能無法繼續取得對應層級的圖磚,導致該圖層停止顯示。不過,在某些應用情境下,我們仍希望即使地圖已放大超過 WMTS 的最大縮放層級,也能持續顯示最後一個可用層級的圖磚。

一個相對簡便的處理方式是:如果該 WMTS 服務同時提供 XYZ Tiles 格式的 URL,或者可以將原有的 WMTS 圖磚網址轉換為 .../{z}/{x}/{y}... 的 XYZ 格式,就可以改以 XYZ Tiles 的方式重新加入 QGIS;XYZ Tiles 連線能擁有比 WMTS 連線更自由的層級控制權。

加入 XYZ 圖磚時,再正確設定該服務的最大縮放層級(Max. Zoom Level)。如此一來,當地圖繼續放大、超過原始圖磚所提供的最大層級後,QGIS 仍會使用最後一個可用層級的圖磚進行放大顯示,而不會讓圖層直接消失。需要注意的是,這種方式並不會產生更高解析度的新圖磚,而只是將既有的最高層級圖磚進一步縮放顯示,因此放大後影像可能會逐漸出現模糊或像素化現象。

以下以農業部農村發展及水土保持署特色圖資 WMTS 服務中的兩個圖層為例,說明如何將 WMTS 圖磚網址轉換為 XYZ Tiles 格式。

農村水保署特色圖資 WMTS 服務:https://gis.ardswc.gov.tw/wmts

其中,「2016-2023 CS 地圖(6m)」與「2016-2023 HOST 地圖(6m)」兩個圖層,目前僅提供 Level 1~14 的圖磚服務。當 QGIS 地圖視窗放大超過 Level 15 後,透過原本的 WMTS 方式載入時,圖層便可能停止顯示。

介接 WMTS 圖磚,圖面縮放到 Level 14 時圖層正常顯示
介接 WMTS 圖磚,圖面縮放到 Level 15 時圖層便無法顯示

我們可以直接查看 WMTS 服務所提供的 XML(Capabilities)內容,找到各圖層所對應的

找出對應 ResourceURL:

2016-2023 CS 地圖(6m)

https://storage.geodac.tw/Tile/v2/Map/CSMap/20162023_Taiwan_CSmap_6m/{TileMatrix}/{TileRow}/{TileCol}.jpg

2016-2023 HOST 地圖(6m)

https://storage.geodac.tw/Tile/v2/Map/Host/20162023_Taiwan_HOSTmap_6m/{TileMatrix}/{TileRow}/{TileCol}.jpg

WMTS 與一般 XYZ Tiles 的圖磚參數可對應如下:

  • {TileMatrix}{z}
  • {TileCol}{x}
  • {TileRow}{y}

因此,將原本的 ResourceURL 改寫為 XYZ Tiles 格式後,即可得到:

2016-2023 CS 地圖(6m)

https://storage.geodac.tw/Tile/v2/Map/CSMap/20162023_Taiwan_CSmap_6m/{z}/{y}/{x}.jpg

2016-2023 HOST 地圖(6m)

https://storage.geodac.tw/Tile/v2/Map/Host/20162023_Taiwan_HOSTmap_6m/{z}/{y}/{x}.jpg

在 QGIS 左側的 [瀏覽器(Browser)] 面板中,找到 [XYZ Tiles],按滑鼠右鍵並選擇 [新連線(New Connection…)]。接著在 XYZ 連線設定視窗中,依序輸入 [Name] 與 [URL],並將 [最大縮放層級(Max. Zoom Level)] 設定為 14。完成後按下 [OK],即可建立新的 XYZ Tiles 連線。

之後將該圖層加入地圖,即使地圖視窗繼續放大超過第 14 層,QGIS 仍會使用第 14 層的圖磚進一步放大顯示,而不會因超過原始圖磚層級而使圖層消失。

改用 XYZ 圖磚後,圖面縮放到 Level 15 時圖層仍然可以顯示