tileserver github官网地址:https://github.com/maptiler/tileserver-gl
1.通过docker安装,并拷贝到内网运行
docker pull maptiler/tileserver-gl:latest
docker save -o ./tileserver-gl.tar maptiler/tileserver-gl:latest
# 把 tileserver-gl.tar拷贝到内网
docker load --input ./tileserver-gl.tar
2.编写配置文件,参考官网:https://tileserver.readthedocs.io/en/latest/config.html
# 发布数据和样式,即既有styles,也有data
{
"options": {
"paths": {
# root 地址是相对于Docker的存储驱动地址,即root地址的前缀是
# /var/lib/docker/overlay2/219e091cd6b2e90da3a48651408c8c94c9c5657878db1a73af19c2a1b0a11367/diff/
# 通过 find / -name tileserver-gl-styles 可以看到该目录
"root": "/usr/src/app/node_modules/tileserver-gl-styles",
"fonts": "fonts", --root目录下的fonts文件夹
"styles": "styles", --root目录下的styles文件夹
# 在docker 运行命令{pwd}:/data代表当前目录映射为/data,那么/data/mbtiles,代表当前目录的mbtiles文件夹
"mbtiles": "/data/mbtiles"
},
# 域是指数据访问的域,这里可以很灵活地设置,并不tileserver-gl监听这里的意思(最开始理解错误!!)
"domains": [
"192.168.1.8:8089",
"127.0.0.1:8080"
],
"formatQuality": {
"jpeg": 80,
"webp": 90
},
"maxScaleFactor": 3,
"maxSize": 2048,
"pbfAlias": "pbf",
"serveAllFonts": false,
"serveStaticMaps": true
},
"styles": {
"klokantech-basic": {
"style": "klokantech-basic/style.json",
"tilejson": {
"bounds": [
113.275,23.225,113.8,23.533
]
}
},
"osm-bright": {
"style": "osm-bright/style.json",
"tilejson": {
"bounds": [
113.275,23.225,113.8, 23.533
]
}
}
},
"data": {
"building_mlp": {
"mbtiles": "building_mlp.mbtiles"
},
"poi": {
"mbtiles": "poi.mbtiles"
},
"road": {
"mbtiles": "road.mbtiles"
},
"xzqh": {
"mbtiles": "xzqh.mbtiles"
},
"water_landcover": {
"mbtiles": "landcover.mbtiles"
}
}
}
3.style.json文件怎么写呢?
{
"version": 8,
"name": "OSM Bright",
"metadata": {
"mapbox:type": "template",
"mapbox:autocomposite": false,
"openmaptiles:version": "3.x",
"openmaptiles:mapbox:owner": "openmaptiles",
"openmaptiles:mapbox:source:url": "mapbox://openmaptiles.4qljc88t"
},
"center": [
113.542,23.372
],
"zoom": 11.6,
"bearing": 0,
"pitch": 0,
"sources": {
"building_mlp": {
"type": "vector",
"url": "mbtiles://{building_mlp}" -----通过参数,引用配置文件中的data中的一个mbtiles
},
"poi": {
"type": "vector",
"url": "mbtiles://{poi}"
},
"road": {
"type": "vector",
"url": "mbtiles://{road}"
},
"xzqh": {
"type": "vector",
"url": "mbtiles://{xzqh}"
},
"water_landcover": {
"type": "vector",
"url": "mbtiles://{water_landcover}"
}
},
"sprite": "{styleJsonFolder}/sprite", ---通过传入参数引用
"glyphs": "{fontstack}/{range}.pbf", ---通过传入参数引用
"layers":[
{
"id":"background",
"type":"background",
"paint":{
"background-color":"hsl(47,26%,88%)"
}
},
{
"id":"waterway",
"source":"water_landcover",
"source-layer":"waterway_pg",
"type":"fill",
"minzoom":8,
"paint":{
"fill-color":"hsl(205,56%,73%)"
}
},
{
"id":"building",
"source":"building_mlp",
"source-layer":"building",
"type":"fill",
"minzoom":16,
"paint": {
"fill-color": "rgba(222, 211, 190, 1)",
"fill-opacity": {
"base": 1,
"stops": [[13,0],[15,1]]
},
"fill-outline-color": {
"stops": [[15,"rgba(212, 177, 146, 0)"],[16,"rgba(212, 177, 146, 0.5)"]]
}
}
}
]
}
4.通过配置文件启动
--启动docker
docker run -it -v $(pwd):/data -p 8089:80 maptiler/tileserver-gl --config ./myconfig.json
--浏览器访问
http://localhost:8282