OpenMapTiles Server
2026年04月01日 17:24
GISBox是一站式三维GIS数据编辑、转换、发布平台,支持OSGB/GEOTIFF/RVT等多种GIS格式编辑,转换为3DTiles/Terrain等并发布。
简介
OpenMapTiles Server 是一个开源的矢量地图服务器解决方案,基于 OpenStreetMap 数据构建,允许用户通过 Docker 一键部署自托管的地图服务,提供全球范围的矢量切片(.pbf)访问,支持自定义样式(如 Mapbox GL JSON),并兼容 MapLibre、Leaflet 等主流前端地图库,使用户能在无网络或高安全要求的环境中运行完全可控、无流量限制、可定制的地图应用,无需依赖商业地图服务商。

文件结构
OpenMapTiles Server 的文件结构基于其开源项目仓库和 Docker 部署实践,典型组织如下:
- data/:存储原始地理数据与生成的矢量切片文件。包含从 Geofabrik 下载的 .osm.pbf 原始数据,以及通过 make generate 生成的 tiles.mbtiles 文件,该文件为 SQLite 格式的矢量切片容器,是服务最终输出的核心数据源。
- layers/:按地理要素类型划分的图层定义目录,每个子目录对应一个矢量图层(如 building/、waterway/、aeroway/),内含 layer.yaml 配置文件与对应的 *.sql 脚本,用于定义数据来源、过滤规则、属性映射和缩放级别。
- sql/:存放 PostgreSQL 数据库导入与处理的 SQL 脚本,包括表结构创建、数据清洗、图层聚合等逻辑,由 make import-data 调用,完成 OSM 数据到矢量图层的转换。
- styles/:存放 Mapbox GL 样式文件(.json),如 style.json,定义了图层的渲染颜色、线宽、标签位置等视觉属性,支持自定义修改以适配不同主题(如亮色、暗色、极简风格)。
- tileset/:包含 tileset.yaml 文件,用于声明图层组合顺序、渲染优先级与全局配置,是连接 layers/ 与 styles/ 的中枢配置文件。
- makefile:定义自动化构建流程,包括 make build(生成 SQL)、make import-data(导入 OSM)、make generate(生成 MBTiles)等目标,是整个数据流水线的调度核心。
- quickstart.sh:一键式脚本,封装了从数据下载、导入到切片生成的完整流程,简化了非专业用户的部署步骤。
- Dockerfile 与 docker-compose.yml:定义容器化运行环境,部署时通过 -v /host/path:/data 挂载本地 data/ 和 styles/ 目录,实现配置与数据的持久化。
优点
- 完全自托管,数据主权可控:所有地图数据与服务均部署在本地或私有网络中,避免向第三方地图服务商发送用户位置信息,满足 HIPAA、FedRAMP、ISO 27001 等合规要求,适用于政府、军事、金融等高安全场景。
- 零流量费用,无使用限制:一旦部署完成,不产生任何按请求计费的费用,适合高并发访问或长期运行的应用,如物联网终端、车载系统、离线应急系统。
- 矢量切片效率高,渲染灵活:采用 .pbf 格式矢量切片,支持动态样式渲染(通过 Mapbox GL JSON),可实现昼夜模式切换、语言本地化、主题定制(如极简、复古、无障碍风格),且在高 DPI 屏幕上显示更清晰。
- 多语言地名支持:内置对全球地名的多语言标注能力,如 name:zh、name:en、name:ja,可自动根据客户端语言偏好显示对应名称,适合国际化应用。
- 部署极简,生态兼容性强:通过 Docker 一键部署,配合 docker-compose.yml 即可运行;原生兼容 MapLibre、Leaflet、OpenLayers、Folium 等主流前端地图库,开发门槛低。
- 离线可用,网络依赖低:MBTiles 文件为单文件 SQLite 容器,可离线分发至嵌入式设备、移动终端或无网络环境,实现“地图即文件”的轻量级部署。
缺点
- 数据更新需手动重建:MBTiles 是静态快照,不随 OpenStreetMap 的实时编辑自动更新。若需同步最新道路、POI 变化,必须重新执行 make generate 流程,耗时长(全球数据需数小时至数天),且无增量更新机制。
- 资源消耗高,硬件门槛明显:生成全球矢量切片需至少 64GB 内存、数 TB 存储空间(含 PostGIS 数据库与中间文件),仅适合中高端服务器;运行时也需稳定 CPU 与 SSD 支持,普通 PC 难以胜任。
- 运维复杂度高:需持续监控磁盘空间、定期清理缓存、管理数据库连接、处理样式兼容性问题。缺乏图形化管理界面,依赖命令行与脚本,对非技术用户不友好。
- 扩展性依赖架构设计:虽支持水平扩展(如多实例负载均衡),但需自行配置反向代理(Nginx)、分布式存储(S3)、CDN 缓存,官方未提供集群化部署方案。
- 不适用于公共高频访问:若用于公开网站且访问量大,易触发 OSM 基础设施的 IP 限流或封禁,必须自建服务,不可依赖公共 tile.openstreetmap.org 服务器。
- 缺乏官方商业支持:作为开源项目,无 SLA 保障、无技术支持团队、无更新承诺,企业级应用需自行承担风险与维护成本。
应用场景
OpenMapTiles Server 适用于需要完全自主控制地图数据与服务的高安全、离线或低网络环境场景,广泛用于政府保密系统、军事指挥平台、车载嵌入式导航、物联网终端设备及企业私有GIS平台,通过自托管矢量切片实现零流量成本、无第三方依赖的地图服务,支持在无互联网条件下稳定运行基础定位与路径规划,同时满足数据合规与定制化视觉风格需求,尤其适合对隐私敏感、网络不可靠或长期运行成本敏感的行业应用。
示例图
1. 加载离线矢量图层OpenMapTiles Map Server。

文件打开方式
1. 图层打开例图。

相关 GIS 服务
Web 地图渲染服务 OGC API
切片地图服务
HERE Technologies
GeoWebCache
参考资料
- https://hostedsoftware.org/tools/openmaptiles-server/
- https://blog.csdn.net/davidwed/article/details/89512311
- https://www.maptiler.com/news/2017/12/openmaptiles-map-server-the-easiest-way-to-deploy-vector-openstreetmap/
- https://blog.csdn.net/dnc8371/article/details/106813184