# mbtiles-image-server **Repository Path**: longwst/mbtiles-image-server ## Basic Information - **Project Name**: mbtiles-image-server - **Description**: mbtile-image-server 地图切片发布服务程序 基于springboot实现 实现获取本地目录中的.mbtiles文件,发布成切片服务 支持图片格式切片(png\jpg) 支持矢量格式切片(pbf) - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2024-10-12 - **Last Updated**: 2025-04-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # mbtile-image-server 地图切片发布服务程序 ### 基于springboot实现 实现获取本地目录中的.mbtiles文件,发布成切片服务 支持图片格式切片(png\jpg) 支持矢量格式切片(pbf) ## 参照 [github mbtiles4j](https://github.com/jtreml/mbtiles4j) [github mbtiles-server](https://github.com/agorshkov23/mbtiles-server) GIS开发:如何开发一个MBTiles Server MBTiles是一个存储地图切片的数据库,以SQLite数据为基础,将地图切片按照缩放级别、横行和纵行的顺序,存储在其中。 常见的Geoserver可以加载插件,对MBTiles进行发布,github上也有开源的MBTiles Server,也可以进行MBTiles发布。 在只需要地图的切片情况下,如何进行一个MBTiles Server开发: 首先,查看MBTiles数据库的结构,可以使用查看SQLite数据库的工具进行查看。 一般是包含metadata和标示每张切片的缩放级别、行列号,表结构根据场景有些不同,但是,都具有可以根据缩放级别和行列号,直接查出来对应的切片图片。 image.png image.png 视图的SQL内容: SELECT map.zoom_level AS zoom_level,map.tile_column AS tile_column,map.tile_row AS tile_row,images.tile_data AS tile_data FROM map JOIN images ON images.tile_id = map.tile_id 简言之,就是都有以下SQL语句,查询地图切片: SELECT tile_data FROM tiles WHERE zoom_level = %d AND tile_column = %d AND tile_row = %d 常用地图,直接访问地图切片的方式: 以Mapbox-gl 为例 image.png 根据以上思路,根据地图的请求url规则,查询MBTiles中的对应切片,进行返回,就能实现在地图端访问到地图切片了。 基于springboot的实现关键代码: image.png 客户端访问的测试效果: image.png 项目开源代码地址:(说明待完善) https://github.com/wclwksn/mbtiles-image-server 参考文章: https://github.com/jtreml/mbtiles4j https://github.com/agorshkov23/mbtiles-server https://wiki.openstreetmap.org/wiki/MBTiles