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

相关文章
|
29天前
|
开发框架 缓存 .NET
C# 一分钟浅谈:Blazor Server 端开发
Blazor Server 是基于 ASP.NET Core 的框架,允许使用 C# 和 Razor 语法构建交互式 Web 应用。本文介绍 Blazor Server 的基本概念、快速入门、常见问题及解决方案,帮助开发者快速上手。涵盖创建应用、基本组件、数据绑定、状态管理、跨组件通信、错误处理和性能优化等内容。
37 1
|
7月前
|
SQL 安全 大数据
SQL Server主流版本生命周期管理
SQL Server主流版本提供至少10年的支持周期,包括5年主要支持期(含功能更新、性能改进等)和5年扩展支持期(仅限安全更新),直至终止支持为止。
268 0
|
定位技术 数据格式
GIS开发:arcgis server发布CGCS2000切片
GIS开发:arcgis server发布CGCS2000切片
242 0
|
SQL 存储 数据可视化
如何使用码匠连接 Microsoft SQL Server
目前码匠已经实现了与 Microsoft SQL Server 数据源的连接,能让您快速、高效地搭建应用和内部系统。
142 0
如何使用码匠连接 Microsoft SQL Server
|
缓存 定位技术
GIS开发:arcgis server切片数据和wmts
GIS开发:arcgis server切片数据和wmts
246 0
|
SQL Oracle 网络协议
从零开始发布一个ArcGIS Server地图服务
从零开始发布一个ArcGIS Server地图服务
501 0
从零开始发布一个ArcGIS Server地图服务
|
Web App开发 缓存 前端开发