轉自江軍祥原文 瓦片地圖與geoserver發布 (有刪減修改)
本文主要包括以下內容
- TileMill生成Tile影像金字塔(.mbtiles壓縮文件)
- Mbutil(https://github.com/mapbox/mbutil)解壓縮
- Apache HTTP Server(或tomcat) 建立web瓦片服務
- 客戶端調用測試
1. 導入數據到postgres數據庫中
osm2pgsql -s -d simple -U postgres -H localhost -S default.style E:\SzgcSj2016\osmosis-latest\bin\Wuhan.pbf --prefix wuhan -W SELECT osm_id,edge_id, (dp).path[1] As index, ST_AsText((dp).geom) As wktnode from ( select osm_id,row_number() over() as edge_id,ST_DumpPoints(way) as dp from wuhan_roads limit 100)x //將geometry的空間參考改為4326(因為默認為900913) ALTER TABLE wuhan_roads ALTER COLUMN way TYPE geometry(LineString,4326) USING ST_Transform(way,4326); ALTER TABLE wuhan_line ALTER COLUMN way TYPE geometry(LineString,4326) USING ST_Transform(way,4326); ALTER TABLE wuhan_point ALTER COLUMN way TYPE geometry(Point,4326) USING ST_Transform(way,4326); //給表格wuhan_polygon添加屬性way2 geometry ALTER TABLE wuhan_polygon ADD COLUMN way2 geometry; //給表格wuhan_polygon的屬性way2 geometry添加格式:(way,4326) update wuhan_polygon SET way2=ST_Transform(way,4326); //刪除表格wuhan_polygon的屬性way ALTER TABLE wuhan_polygon DROP COLUMN way; //給表格wuhan_polygon的屬性way2改民為way ALTER TABLE wuhan_polygon RENAME way2 TO way;
2.TileMill配置postgres的數據連結
- 新建項目
- 添加圖層
- 設置工程的默認渲染方式
- 樣式配置
- 條件性樣式
- 工具提示
- 圖例
- 輸出地圖
連接后根據ID寫樣式配置
#wuhanpolygon { ::outline { line-color: #3c22d6; line-width: 2; line-join: round; } polygon-fill: #03b6ad; } host=localhost port=5432 user=postgres password=root dbname=simple #wuhanroads { ::outline { line-color: #3c22d6; line-width: 2; line-join: round; } polygon-fill: #03b6ad; } #wuhanpoint { marker-width:6; marker-fill:#8b9091; //f45 marker-line-color:#813; marker-allow-overlap:true; }
然后導出mbtils文件,用python或者QGis安裝插件解壓即可,所得即瓦片地圖,把文件夾放在tomact中root文件夾下即可訪問。
在tomcat中webapp下導入geoserver,啟動geoserver,連接postgres,分別發布wuhan_roads,wuhan_point,wuhan_line,wuhan_polygen等表,可以在瀏覽器中查看效果如下:

