GIS开发:如何开发一个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

相关文章
|
定位技术
GEE(CCDC-3)——根据CCDC segment分割后的影像进行地类变化统计和绘制土地覆被变化地图
GEE(CCDC-3)——根据CCDC segment分割后的影像进行地类变化统计和绘制土地覆被变化地图
485 0
|
JavaScript
Vue 项目使用 json-editor (二)
Vue 项目使用 json-editor (二)
839 0
分享:mapbox-gl的CGCS2000修改版
分享:mapbox-gl的CGCS2000修改版
403 0
|
存储 JSON Serverless
西游再现,函数计算一键部署 Flux 超写实文生图模型部署
参与体验活动生成西游人物图像,既有机会赢取好礼!本次实验在函数计算中内置了flux.1-dev-fp8大模型,通过函数计算+Serverless应用中心一键部署Flux模型,快速生成超写实图像。首次开通用户可领取免费试用额度,部署过程简单高效。完成部署后,您可以通过修改提示词生成各种风格的图像,体验Flux模型的强大绘图能力。
西游再现,函数计算一键部署 Flux 超写实文生图模型部署
ThreeJs绘制线
这篇文章详细说明了如何使用Three.js来绘制线条,包括创建线几何体、设置材质以及将线条添加到3D场景中的具体步骤。
318 1
|
SQL 前端开发 关系型数据库
芋道框架万字详解(前后端分离)、若依框架、yudao-cloud保姆级攻略
芋道框架万字详解(前后端分离)、若依框架、yudao-cloud保姆级攻略
17522 5
|
Web App开发 Java 网络安全
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
3775 0
|
缓存 前端开发 定位技术
Cesium加载Mapbox自定义地图
Cesium加载Mapbox自定义地图
467 0
|
SpringCloudAlibaba Java API
SpringCloud Alibaba微服务工程搭建(保姆级)
SpringCloud Alibaba微服务工程搭建(保姆级)