TileServer-GL Configuration file 的使用方法

本文详细介绍如何使用Docker安装并部署TileServer-GL,包括配置文件编写、style.json文件结构解析及通过配置文件启动服务的过程。适用于地理信息系统开发者及地图服务搭建者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

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

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值