系列文章目錄
開源方案搭建可離線的精美矢量切片地圖服務-1.開篇(附成果演示地址)
開源方案搭建可離線的精美矢量切片地圖服務-2.PostGIS+GeoServer矢量切片
開源方案搭建可離線的精美矢量切片地圖服務-3.Mapbox個性化地圖定制入門
開源方案搭建可離線的精美矢量切片地圖服務-4.Mapbox樣式設計
開源方案搭建可離線的精美矢量切片地圖服務-5.Mapbox離線項目實現
開源方案搭建可離線的精美矢量切片地圖服務-6.Mapbox之.pbf字體庫
開源方案搭建可離線的精美矢量切片地圖服務-7.Arcgis Pro企業級應用
開源方案搭建可離線的精美矢量切片地圖服務-8.mapbox 之sprite大圖圖標文件生成(附源碼)
項目成果展示(所有項目文件都在阿里雲的共享雲虛擬主機上,訪問地圖可以會有點慢,請多多包涵)。
01:中國地圖:http://test.sharegis.cn/mapbox/html/3china.html
02:德國-德累斯頓市:http://test.sharegis.cn/mapbox/html/6germany.html
1.PostGIS簡介
PostGIS是對象關系型數據庫系統PostgreSQL的一個擴展,PostGIS提供如下空間信息服務功能:空間對象、空間索引、空間操作函數和空間操作符。同時,PostGIS遵循OpenGIS的規范。我們項目中主要使用它來保存原始矢量數據。
2.Geoserver簡介
GeoServer 是 OpenGIS Web 服務器規范的 J2EE 實現,利用 GeoServer 可以方便的發布地圖數據,允許用戶對特征數據進行更新、刪除、插入操作,通過 GeoServer 可以比較容易的在用戶之間迅速共享空間地理信息。我們在GeoServer的基礎上添加vector Tiles插件進行矢量切片。
3.數據准備
數據一:中國基礎地理數據,格式為wgs84的shp數據:https://pan.baidu.com/s/16hN5znypnHR-Qw-BAejOoA
數據二:德國-德累斯頓市詳細數據,格式為wgs84的shp數據:https://pan.baidu.com/s/1iiN4pntpNwN0W-T-831uJQ
這套數據來源於openstreetmap的數據,openstreetmap免費提供全球的空間數據,但是存在一點問題就是只能一塊一塊下載,拼接比較麻煩,我這套數據來自於geofabrik上共享的處理過后地理數據,感興趣的大家可以看一下。
4.數據導入PostGIS中
本示例講一下將中國基礎shp文件批量導入PostGIS數據庫。
1.打開安裝目錄下打開postGIS導入程序。
2.連接數據庫,
3.加載shp數據,導入文件路徑不可以含有中文,並且導入的時候注意SRID值的設定,SRID對應地理坐標系的代碼,我們使用的數據是WGS84坐標系對應的SRID值是4326,這個一定要注意,出錯的話可能導致數據偏移等問題。
5.Geoserver發布
1.打開Geoserver web站點,新建一個工作區如下,
2.新建數據源,將PostGIS數據接入。
3.輸入數據庫連接參數
4.點擊發布圖層。並輸入參考坐標系以及邊框,一般情況點藍色鏈接便可自動生成。
5.繼續發布其他圖層,
6.將各個圖層合起來生成一個圖層組。並設置切片緩存格式。
勾選application/x-protobuf;type=mapbox-vector矢量切片格式,切片為.dbf格式的文件,壓縮率更好。適合網絡傳輸。選擇默認切片格式EPSG:900913,因為Mapbox只支持WGS84 Web 墨卡托投影投影,這里注意一下。
7.矢量切片的預覽
8.為了加快地圖訪問速度,我們可以對矢量切片進行緩存。
可以選擇切片等級以及切片的線程數。到此整個矢量切片的過程完成了。可在切片文件夾中查看成果文件。
6.遇到的疑惑
1.我沒找到GeoServer矢量切片中對圖層組中單個圖層在某一級別下控制不對其進行切片的功能,因為很多圖層在低等級下是不需要進行顯示的,我們一刀切必定會帶來數據的冗余。
2.我使用GeoServer2.13.0版本進行矢量切片緩存的時候,切片只能切出部分數據,我不知什么原因,后期可以通過循序請求切片的方式進行切片的緩存。
7.總結
這一篇主要講了一下數據的存儲,以及矢量切片的生成,下一篇我會講一下我們本套教程的核心Mapbox的使用。
待續。。。。。。。。。。。。。。。。。。。。。
作者:ATtuing
出處:http://www.cnblogs.com/ATtuing
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接。