㈠ WebGIS 瓦片地圖引擎實現之——地圖瓦片載入計算原理介紹
在地圖瓦片技術使用之前,用戶使用在線地圖,都是客戶端將要顯示的地理范圍傳送到服務端,服務端獲取地理范圍內數據渲染成圖片返回給客戶端。然而,此方法存在伺服器IO操作和網路傳輸耗時、伺服器資源佔用大、數據傳輸耗時長等問題。為解決這些問題,谷歌地圖提出了TMS服務,預先在服務端分層切片全量渲染,使用Web-Mercator投影,將地圖按照不同顯示級別切分成瓦片坐標圖片。用戶訪問時,根據地理范圍映射到瓦片索引,請求圖片,客戶端渲染圖片,體驗明顯提升。TMS服務成為WebGIS工業標准,推動了OGC發布基於TMS的WMTS服務規范,多家地圖廠商基於此技術生產切片地圖服務。
柵格瓦片與矢量瓦片分別指的是地圖瓦片和使用矢量數據組織的瓦片。柵格瓦片廣泛使用,但存在瓦片預切圖耗時、數據更新不便、服務端資源要求高、存儲冗餘、地圖樣式單一等問題。為此,Mapbox提出MVT矢量瓦片切片技術,地圖定製化方便,技術流行,受此影響,三維數據也誕生了3DTiles。
為了更好地使用瓦片服務,需了解瓦片地圖生產過程。以柵格瓦片為例,數據投影及配圖包括數據投影,將大地坐標系轉換為Web墨卡托投影,計算簡單,精度可忽略不計,地圖投影在256*256像素圖片上。地圖配圖對數據分層級配置,處理數據細節,如樣式配置,專業軟體如ArcGIS、QGIS等可用。接著,地圖切片根據瓦片坐標系統,將Web墨卡托地圖轉換為瓦片坐標,坐標轉換過程涉及經緯度坐標轉瓦片坐標,公式推導如經緯度->米->像素坐標->瓦片坐標。
瓦片地圖服務發布後,瓦片文件通過目錄結構組織,客戶端請求對應瓦片,解析瓦片服務流程需滿足高可用性,支持瓦片增量更新和對稱子午線地圖重復,瓦片連貫顯示。渲染流程將拼接好的瓦片數據渲染,還需考慮矢量瓦片數據特殊處理及數據拾取等細節。詳細代碼實現和更多關注信息請參考鏈接。