OpenLayer3+PostGIS+GeoServer 搭建簡單GIS服務框架問題探究
傳統GIS開發中,我們一般會采用ArcGIS或者SuperMap作為GIS平臺來進行開發,簡單的分析查詢會采用官方api或者leaflet,esri-leaflet等進行開發,復雜的查詢分析統計功能會利用Geoprocessor(簡稱GP)來進行操作,采用這種商業平臺好處顯而易見是開發效率很大的提升,因為在這麽多年的發展過程中,官方社區或者一些解決方案都很成熟。在開發過程中遇到的一般問題如果不是很好解決,也可以很方便的向技術支持尋求幫助。但是缺點就是費用很高,一整套產品下來就要好幾十萬,對於開發成本來說這個費用還是很高的。因此提出了基於OpenLayer3+PostGIS+GeoServer 搭建GIS服務框架的想法。
1 GeoServer:一款開源WebGIS地圖服務器,類似ArcGIS Server,提供統一OGC接口服務WMS/WFS/WMTS,功能比較強大,便於使用,使用量多較成熟;
2 OpenLayer:一款開源前臺地圖API產品,對數據進行可視化、空間分析、成果展示;
3 PostGIS:一款開源先進的開源空間數據庫;
4 PostgreSQL:PostgreSQL(以下簡稱PG數據庫) 是一個自由的對象-關系數據庫服務器(數據庫管理系統),除了作為普通關系數據庫所具有的的特征外,我看到其最吸引的優勢是其數據類型,包括:任意精度的數值,無限制長度文本,幾何圖元,IP地址與IPv6地址,無類域間路由地址塊,MAC地址,數組…………此外,用戶可以創建自定義數據類型,通常通過PostgreSQL的GiST機制,它們也能被很好得索引,比如PostGIS地理信息系統的數據類型, 同時也要指出的是,PostgreSQL 對接口的支持也是非常豐富的,幾乎支持所有類型的數據庫客戶端接口。這一點也可以說是 PostgreSQL 一大優點。
- 步驟一 底圖導出
用太樂底圖下載器下載天地圖或者百度地圖當作服務底圖(推薦使用天地圖,因為天地圖坐標系默認采用web墨卡托投影不偏移,下載好數據之後導出,需要註意下面幾點
1 存儲標準選擇大圖拼接,存儲格式選擇tif格式(geoserver支持),選擇級別只選擇最高等級即可,雖然我們下載了總共有18級,但是不需要全部選中,效果是一樣,這一點我已經在ArcMap進行測試。
2 在導出的高級設置選項裏面 ,把默認的智能分塊進行取消掉,選擇坐標系是xian80坐標系
- 步驟二 地理配準
1 打開ArcMap 把所下載的地理數據tif格式導入到ArcMap,顏色會進行變化。 圖層屬性裏面 拉伸選擇無就好了
2 然後把shp數據疊加在一起 ,如果有偏移的話,可以進行地理校準。然後把校準的數據導出保存。如果在ArcMap中可以疊加 不便宜 就可以在geoserver 上調取服務疊加。
3 可以通過把postgis 導入到postgresql (步驟就不詳細寫了,網上教程很多)。 需要註意的事項就是postgis要安裝在同一安裝目錄。
數據如下。
postgressql 下載地址:https://www.enterprisedb.com/downloads/postgres-postgresql-downloads#windows
postgis 下載地址:http://postgis.net/windows_downloads/
- geoserver 服務發布
1 登陸geoserver ,左側新建工作區 寫好之後 提交
2 左側新建數據存儲,可以選擇新建的工作區。選擇tif格式,把數據進行發布。也可以進行切圖處理。
同理 shp數據也可以這樣發布。可以選擇從本地打開或者從數據庫導入shp數據。(這需要註意一點 shp數據不能為中文!)
- 步驟三 前端疊加展示
OpenLayer3+PostGIS+GeoServer 搭建簡單GIS服務框架問題探究