【森城市】GIS資料漫談(二)
在上篇“GIS資料漫談(一)”中簡單介紹了GIS資料中向量資料和柵格資料的概念,以及常見的GIS資料檔案型別。這篇漫談中我們繼續講講地圖服務。
空間資料庫
GIS的發展史是跟隨IT技術的發展史進展的,比如前面提到的各種向量資料、柵格資料的檔案都屬於空間資料。由於地理資料本身的大資料屬性,一個城市地理資訊系統的資料量可能達幾十GB,如果考慮影像資料的儲存,可能達幾百個GB。地理資訊系統的海量資料,帶來了系統運轉、資料組織與儲存、網路傳輸等一系列技術困難,自然也給資料管理增加了難度。
為了 更好的管理GIS資料便發展出了 空間資料庫,隨著技術的發展很多主流資料庫基本上都支援空間資料擴充套件,比如MySQL、Oracle、PostGIS等。
地圖服務
有了空間資料庫管理GIS資料,怎麼去對接這些資料呢?總不能一個個去導GeoJSON吧。OGC【開放地理空間資訊聯盟 (Open Geospatial Consortium-OGC)】為上面講過的資料來源設計了一些服務比如WMS、WMTS、WFS 等等。
在GIS的Web應用中,無論原始資料存在檔案裡也好,還是存在資料庫裡也好,都可以利用這些標準的地圖服務在網路中通過http(s)協議進行訪問共享。一般GIS大廠的Server產品或開源的GIS Server(比如 GeoServer)都支援釋出這些地圖服務。
WMS(Web Map Service)
該服務的最主要能力就是將GIS資料(無論原始資料是向量資料還是柵格資料)釋出成“圖片”。即根據客戶端請求引數(主要是bbox範圍),伺服器端返回相應的“圖片”。
WMS常用的三種操作:
• GetMap:根據請求引數,返回一個圖片
• GetFeatureinfo:根據請求引數裡的座標,返回查詢到的物件屬性資訊
• GetCapabilities:返回服務的後設資料
將“站點”、“鐵路”、“湖泊”資料釋出成WMS服務,則可以通過WMS服務根據bbox範圍請求相應資料渲染後的地圖圖片。絕大部分的地圖應用前端庫對WMS服務都有相應圖層支援。
WMS 有時又被稱為“動態”地圖服務,伺服器會從客戶端發出請求的引數(比如圖層名稱、BBox範圍內)去資料庫或檔案中檢索查詢相應範圍的資料,然後再根據配置的樣式渲染成圖片,最終返回給客戶端。
如果客戶端請求頻發或併發請求高,地圖圖層包含的資料量又非常龐大、配置的樣式複雜時,服務端承擔的負載就會增大。因此,後來又發展出了地圖瓦片快取機制。簡單說就是按一定的規則把“渲染”後的地圖圖片存放在伺服器上,當客戶端再次呼叫時服務端就直接返回“快取”的圖片,不用再次“動態”渲染,所以就有了 地圖瓦片服務。
地圖瓦片服務
地圖瓦片指將一定範圍內的地圖按照一定的尺寸和格式,按縮放級別或者比例尺,切成若干行和列的正方形柵格圖片,對切片後的正方形柵格圖片被形象的稱為 瓦片(tile)。
瓦片地圖金字塔模型是一種多解析度層次模型,從瓦片金字塔的底層到頂層,解析度越來越低,但表示的地理範圍不變。
Google 地圖採用的 Web Mecator 投影和瓦片分級切割方案,也成為目前網際網路地圖事實上的標準。
WMTS(Web Map Tile Service)
WMTS是一種OGC定義的地圖瓦片服務標準,WMTS 是 OGC 提出的快取技術標準,即在伺服器端快取被切割成一定大小瓦片的地圖,對客戶端只提供這些預先定義好的單個瓦片的服務,將更多的資料處理操作如圖層疊加等放在客戶端,從而緩解 GIS 伺服器端資料處理的壓力。
與之對應的還有Google Tile、 OSGeo 的 TMS(Tile Map Service)等等,雖然各個規範有所不同,但基本上都可以在uearth API中嘗試使用 TileLayer 載入這些地圖瓦片服務。
如何在低程式碼載入使用這些資料?可以將湖泊、鐵路等資料利用GeoServer分別釋出成為WMTS和TMS地圖服務,在低程式碼ThingJS線上開發利用 uearth API 的 TileLayer 進行載入。
無論是WMS服務還是地圖瓦片(切片)服務,最終呼叫的都是“圖片”而不是資料本身。雖然瀏覽器幾乎沒有渲染的壓力,但是樣式不夠靈活,只能在低程式碼ThingJS中調整整體圖片的效果,不方便效果調整(如果調整了服務端的地圖樣式配置又需要重新切片)。所以又有了WFS服務來直接的提供對向量資料的操作。
WFS(Web Feature Service)
WFS為客戶端提供了 操作向量資料的能力,除了返回查詢資料外,還提供了新增、修改、刪除資料的標準介面。意思是所看到的是要素是向量圖形,而不是一張圖片。
向量圖形和圖片要素的區別是不會隨著放大程度的改變而失真,向量要素方便互動和編輯、修改形狀等。
如何在低程式碼載入使用這些資料?
利用 GeoServer 將資料(如鐵路)釋出成WFS服務直接在前端進行查詢,返回結果後(一般為geojson格式),用 ThingJS/uearth 相關 API 進行繪製。
工具推薦
森城市:一鍵生成3D城市,內建多種模板,自由編輯
• 森城市目前提供全國範圍內 110多個城市的標準三維場景的構建服務,使城市三維場景的構建速度提升至分鐘級。
• 森城市支援不同型別城市資料的插入和自動融合,並提供友好而強大的場景編輯能力和效能處理能力, 無需具備GIS、建模等專業技能,就可以輕鬆DIY自己的酷炫城市三維場景。
• 森城市具備開放的 城市場景輸出能力,無需擔心場景後續使用的相容問題。
低程式碼ThingJS:低程式碼靈活開發數字孿生視覺化應用
• 低程式碼ThingJS提供了 豐富的3D開發API、完善的開發文件和視訊教程,熟悉基礎的JavaScript前端知識即可上手數字孿生視覺化應用開發。
• 低程式碼ThingJS是H5的WebGL架構,可在 各類主流網頁瀏覽器中自如執行,包括可在移動端直接訪問執行。
• 低程式碼ThingJS提供全生命週期的開發元件,大大提升數字孿生視覺化專案開發效率。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69980539/viewspace-2904539/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- GIS資料漫談(三)
- 漫談對大資料的思考大資料
- 智慧城市:大資料運營中心 IOC —— Web GIS 地圖應用大資料Web地圖
- 效能優化漫談之二優化
- 漫談“資料拆分層次對比”
- 漫談Oracle資料庫健康檢查Oracle資料庫
- 資料庫叢集技術漫談資料庫
- GIS+BIM專題二:SuperMap對接Bentley資料流程(二)
- gis 資料學習
- 漫談QWidget及其派生類(二)
- GIS學習記錄(二):GeoServer地理資料匯入Server
- 漫談“資料湖”之價值與架構架構
- 激發“資料+”硬核區 :數字城市防汛應急,Web GIS 視覺化佈局Web視覺化
- 漫談大資料的思想形成與價值維度大資料
- 「GIS基礎」JSON資料格式在GIS領域的運用JSON
- 【MySQL】MyRocks 漫談MySql
- UIAppearance漫談UIAPP
- 漫談mysql索引MySql索引
- java基礎(二):談談Java基本資料結構Java資料結構
- Alink漫談(七) : 如何劃分訓練資料集和測試資料集
- 漫談 React 元件庫開發(二):元件庫最佳實踐React元件
- 生成擴散模型漫談(二):DDPM = 自迴歸式VAE模型
- 工業大資料漫談17:雲端計算與工業大資料的關係大資料
- 漫談負載均衡負載
- 漫談CUDA優化優化
- 漫談Oracle RAC servicesOracle
- 【MySQL】漫談死鎖MySql
- 程式語言漫談
- Oracle CPU TIME 漫談Oracle
- 隨機數漫談隨機
- BIM與GIS融合的意義——從智慧工地到智慧城市
- 一些可用於研究的GIS資料資源
- 從Google Spanner漫談分散式儲存與資料庫技術XAGo分散式資料庫
- 資料庫物理設計經驗談(二)資料庫
- GIS資料獲取:氣象資料免費下載網站網站
- 城市防汛應急管理智慧 Web GIS 視覺化平臺Web視覺化
- 艾漫資料:2019上半年各線級城市泛娛樂受眾大資料分析報告大資料
- 漫談 SLAM 技術(上)SLAM