TileServer GL 完整实战三步搭好你的地图瓦片服务【免费下载链接】tileserver-glVector and raster maps with GL styles. Server side rendering by MapLibre GL Native. Map tile server for MapLibre GL JS, Android, iOS, Leaflet, OpenLayers, GIS via WMTS, etc.项目地址: https://gitcode.com/gh_mirrors/ti/tileserver-glTileServer GL 是一个开源的地图瓦片服务器给它一份 GL 样式文件和 MBTiles 数据它就能输出矢量瓦片、服务器端渲染的栅格瓦片以及兼容 WMTS 协议的接口直接供 MapLibre GL JS、Leaflet、OpenLayers 等客户端消费。它是什么一个服务端出图的瓦片服务器传统做法是客户端拉矢量瓦片再本地渲染TileServer GL 把渲染放到服务端——完整版用 MapLibre GL Native 在服务器上把矢量数据画成 PNG/JPG/WebP 栅格瓦片客户端拿到的就是现成的图片。同一套服务还暴露样式、字体、精灵图、瓦片数据和 WMTS 能力文档等端点一份部署可以喂给 Web、移动端和 GIS 系统。两种形态对比npm 上有两个包Docker 镜像也分两个对应完整版和轻量版对比项tileserver-gl完整版tileserver-gl-light轻量版依赖MapLibre GL Native含原生模块纯 JavaScript无原生依赖服务端栅格渲染支持渲染瓦片、静态图、高程接口不支持不提供服务端栅格化部署门槛需 Node 20官方 README 推荐 Node 24旧版文档写 v18.17.0、推荐 Node 20有 Node 就能跑任何环境适用场景对出图性能有要求的生产环境快速部署、开发测试对应 Docker 镜像maptiler/tileserver-glmaptiler/tileserver-gl-light判断标准很简单你需要服务器端出栅格图选完整版只要发矢量瓦片和样式、求省事选轻量版。适合谁用在哪里Web 地图开发者前端已经用 MapLibre GL JS、Leaflet 或 OpenLayers只差一个稳定的瓦片源改一下 style URL 就能接上。移动 / 离线应用为 Android、iOS 应用提供本地瓦片服务数据打包进 MBTiles 后离线可用。GIS 集成通过 WMTS 端点/styles/{id}/wmts.xml对接专业 GIS 系统而不只是自家 Web 前端。地理数据可视化把 GeoJSON/MBTiles 里的数据快速挂成可交互的地图用于空间分析和展示。三步跑起来 安装三选一# 方式一npm 全局安装完整版轻量版把包名换成 tileserver-gl-light npm install -g tileserver-gl # 方式二Docker docker run --rm -it -v $(pwd):/data -p 8080:8080 maptiler/tileserver-gl # 方式三源码运行 git clone https://gitcode.com/gh_mirrors/ti/tileserver-gl cd tileserver-gl npm install最小可跑配置在工作目录放一个config.json两个字段就能跑{ options: { paths: { root: ./data } }, styles: { basic: { style: style.json, tilejson: { bounds: [-180, -85.0511, 180, 85.0511] } } } }options.paths.root所有数据样式、字体、mbtiles 等的根目录前缀。styles.basic.style样式文件名指向style.jsonbasic是对外暴露的样式 ID。tilejson.bounds服务覆盖范围左下、右上经纬度客户端据此限制地图边界。样式文件可用 Maputnik 之类的编辑器制作配置里也可以直接写远程 style URL。启动与验证# 完整版 tileserver-gl --config config.json # 轻量版 tileserver-gl-light --config config.json默认监听8080端口。启动后浏览器访问http://localhost:8080能看到带样式列表和测试入口的前页再请求一张瓦片例如/styles/basic/0/0/0.png返回正常图片就说明链路通了。只有一份 mbtiles 文件、暂时没有配置文件时也可以直接tileserver-gl --file xxx.mbtiles启动。生产环境调优清单 ️缓存服务前挂 nginx / Varnish / Cloudflare。nginx 的proxy_cache配 1 周有效期即可显著卸载重复请求改了样式或瓦片后要清理缓存目录否则旧瓦片会一直命中。分辨率上限用maxScaleFactor限制栅格请求的放大倍率如3x封顶用maxSize限制出图尺寸如 2048px防止超大图拖垮渲染进程。出图质量formatOptions里按格式设质量如jpeg: { quality: 80 }、webp: { quality: 90 }在流量和质量之间取平衡。进程管理生产环境用 PM2 这类工具保活避免进程挂掉后无人拉起重启。安全对外部署时加--public_url https://your-domain.com/固定响应里的 URL不用 public_url 时用环境变量TILESERVER_GL_ALLOWED_HOSTS逗号分隔的域名白名单限制 Host防 Host 头投毒。反向代理代理层要透传X-Forwarded-Host/X-Forwarded-Proto否则 TileJSON 等响应里生成的域名和协议会不对。官方文档与延伸阅读仓库docs/目录里有完整的 Sphinx 文档按需查阅配置字段全解paths、formatOptions、styles、data 等docs/config.rst部署、缓存、反向代理与安全docs/deployment.rst全部可用端点清单样式、渲染瓦片、WMTS、静态图、数据、高程docs/endpoints.rst安装与使用说明docs/installation.rst、docs/usage.rst下一步跑通最小配置后把真实的 MBTiles 数据放进./data目录、补上字体与样式文件再按上面清单加缓存和安全项就可以直接接入生产。不想装环境的话先复制这条命令体验轻量版npx tileserver-gl-light --demo【免费下载链接】tileserver-glVector and raster maps with GL styles. Server side rendering by MapLibre GL Native. Map tile server for MapLibre GL JS, Android, iOS, Leaflet, OpenLayers, GIS via WMTS, etc.项目地址: https://gitcode.com/gh_mirrors/ti/tileserver-gl创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考