首先,這不是一個(gè)教程.而是一個(gè)現(xiàn)成的產(chǎn)品包,包括了資源與服務(wù),可以開(kāi)箱即用.
1. 引入
1.1 它解決了哪些問(wèn)題
- 下載地圖瓦片不可能下載很多級(jí)別,有時(shí)候遇到特定縮放級(jí)別沒(méi)有地圖十分尷尬的問(wèn)題
- 內(nèi)網(wǎng)同時(shí)有使用矢量和柵格瓦片的場(chǎng)景,無(wú)法同時(shí)應(yīng)對(duì)的問(wèn)題
- 后續(xù)數(shù)據(jù)擴(kuò)展不方便的問(wèn)題
1.2 它解決不了的問(wèn)題
- 因?yàn)槭褂玫氖荗SM免費(fèi)數(shù)據(jù),地物相當(dāng)少,因此大多數(shù)情況無(wú)法看清詳細(xì)的地物
- 使用柵格影像時(shí),因?yàn)橹袊?guó)地圖的樣式十分復(fù)雜,又是實(shí)時(shí)渲染,因此渲染時(shí)間較長(zhǎng)
1.3 注意
- 使用的是OSM數(shù)據(jù)源,請(qǐng)遵守該數(shù)據(jù)源的使用許可
- 使用的數(shù)據(jù)源是2019年的數(shù)據(jù),比較舊
- 請(qǐng)嚴(yán)格遵循中國(guó)的網(wǎng)絡(luò)地圖相關(guān)規(guī)范??????
2. 使用
整個(gè)包在這里,密碼: i30d.請(qǐng)全部下載到本地.
2.1 部署環(huán)境
- 具有Docker和Docker-compsoe的Linux/Windows環(huán)境
2.2 組件與原理
- 數(shù)據(jù)源:OSM的中國(guó)區(qū)地圖包
- 地圖渲染引擎:TileServer-gl
- 中國(guó)地圖渲染樣式:osm-liberty
- 字體:思源黑體與思源宋體
原理其實(shí)很簡(jiǎn)單,TileServer提供了一種渲染功能,OSM提供了Tileserver支持的mbtiles格式的底圖包.使用了開(kāi)源的OSM-liberty樣式,將里面的字體替換為本地字體,同時(shí),處理為pbf格式的本地字體也由Tileserver服務(wù)化,在渲染時(shí)調(diào)用.
Tileserver的優(yōu)勢(shì)是完全兼容Mapbox樣式,將矢量數(shù)據(jù)渲染為png格式的柵格瓦片,當(dāng)然,當(dāng)前端就是Mapbox時(shí),也可以直接提供矢量瓦片.這樣就同時(shí)兼容了兩者.
2.3 部署
- 執(zhí)行
install.sh導(dǎo)入Tileserver-gl的docker鏡像,因?yàn)橄螺d非常慢,還可能失敗,因此將其放在包中 - 在根目錄執(zhí)行
docker-compose up -d,即可啟動(dòng)服務(wù)
2.4 管理頁(yè)面
默認(rèn)設(shè)置為8080端口,進(jìn)入localhost:8080,就能進(jìn)入Tileserver的管理頁(yè)面

其中:
GL Style:OSM Liberty的樣式JSON,可以直接被Mapbox使用
TijeJson:標(biāo)準(zhǔn)的Tilejson文件,是柵格形式的,也能被Mapbox直接使用
WMTS:描述XML,兼容其他地圖服務(wù)
XYZ:一個(gè)簡(jiǎn)單的xyz形式的URL路徑,可以被直接使用與常用地圖引擎
Viewer/Vector:以矢量瓦片的形式展示數(shù)據(jù)
Raster:以柵格瓦片的的形式展示數(shù)據(jù)
inspect:直接展示數(shù)據(jù),不進(jìn)行復(fù)雜渲染,展示數(shù)據(jù)中的點(diǎn)線面
2.5 地圖效果
可以看見(jiàn),無(wú)論是矢量瓦片,柵格瓦片還是字體瓦片,都來(lái)自于本地.完全脫離了互聯(lián)網(wǎng).








3. 擴(kuò)展
3.1 修改端口
只需要改動(dòng)docker-compose.yml中的端口映射即可
3.2 添加數(shù)據(jù)
- 將數(shù)據(jù)制作成mbtiles包并放到
mb路徑下(當(dāng)然,數(shù)據(jù)本身可以通過(guò)網(wǎng)絡(luò)訪問(wèn)的就不用了) - 修改
config.json,添加該數(shù)據(jù)的映射(同樣只針對(duì)本地?cái)?shù)據(jù)) - 添加樣式文件的json,并放到
styles文件夾下 - 修改
config.json,添加該樣式的映射(如果只需要數(shù)據(jù),不需要渲染的話可以無(wú)需后兩步)
4. 結(jié)語(yǔ)
這個(gè)東西很早就成型并投入使用了,工作變化后,我也再也沒(méi)有使用/更新過(guò).最近整理了一下,看看能不能幫助更多的人.