当前位置: 首页 > news >正文

MBTiles 及爬取到发布与数据转换

MBTiles  :https://github.com/mapbox/mbtiles-spec/blob/master/1.3/spec.md

1.MBTiles是什么

MBTiles是一个在SQLite 数据库存储瓦片地图数据的标准,该标准的目的是即时传输和使用数据。

作为一个容器格式,MBTiles可以存储任何瓦片数据, 因为用来存储数据 ,所以不能对其做任何修改

2.如何查看

我们可以通过SQLite打开MBTiles,或QGIS查看。

GDAL的MBTiles驱动读取;QGIS就依赖于GDAL;

GDAL : MBTiles — GDAL 文档 (osgeo.cn)

3.如何发布

通过geoserve 添加插件发布;

如果存储矢量瓦片格式使用 MBTiles with vector tiles - MBTiles with vector tiles 发布。

如果存储栅格瓦片格式使用 MBTiles - MBTiles plugin 发布。

4.MBTiles中瓦片数据格式

MBTiles 中存储的瓦片为矢量瓦片和栅格瓦片;

4.1.矢量瓦片格式

MBTiles 中储存的矢量瓦片格式遵从mapbox矢量瓦片规格。

4.1.1 mapbox矢量瓦片规格

mapbox矢量瓦片规格:

mapbox矢量瓦片格式使用 Google Protocol Buffers 作为编码格式(.pbf)。Protocol Buffers 是一种与语言无关、与平台无关的可扩展机制,用于序列化结构化数据。

4.1.2  矢量瓦片规格读取(GDAL的MVT)
  • GDAL 的 MVT驱动程序读取

GDAL MVT:MVT:地图框矢量平铺 — GDAL 文档 (osgeo.cn)

一般通过MVT驱动程序:矢量瓦片格式为独立文件、未压缩文件或gzip压缩文件(典型的扩展名是.pbf、.MVT、.MVT.gz)。

5 .整体关系

关于矢量瓦片中 mvt 与 pbf 的关系:

6 MBTiles爬取到发布

知道数据格式与原理后实战:

首先拿到矢量图层链接{z}/{x}/{y}.pbf  到 QGIS添加数据源 使用工具箱下载矢量瓦片;

发布:geoserve MBTiles with vector tiles 发布 。发现无法发布提示无json字段;

看文档 : 

如果是 pbf格式, 元数据表Vector tileset metadata 必须 包含这一行:

  • json (JSON字符串): 列出矢量瓦片中出现的层,和名字, 和层中出现的特性所包含属性的类型。 

矢量瓦片集元数据Vector tileset metadata:

json行中的JSON对象必须包含vector_layers 键, 它的值是一个JSON对象数组。

json 行的 JSON 对象也可以包含 tilestats 键, 它的值是一个"geostats"格式的对象。

即必须包含vector_layers ,至于tilestats 无所谓。

那就添加 通过SQLite编辑:

{  "vector_layers": [{"id": "airways","description": "airways","minzoom": 0,"maxzoom": 7,"fields": {"wkt_geom": "LineString","ident": "String","type": "String"}},]}

通过QGIS矢量要素识别找到fields 与id;

再次添加成功:--->点击发布 

最后成功发布;

7.数据转换

发布之后建立图层组然后选择格式导出即可。


http://www.mrgr.cn/news/82996.html

相关文章:

  • STM32学习(十)
  • 使用LinkedList手撕图的邻接表
  • 深度学习J8周 Inception v1算法实战与解析
  • Android存储方案对比(SharedPreferences 、 MMKV 、 DataStore)
  • C++ shared_ptr进一步认知,为什么引用计数>2退出作用域都可以调用析构
  • 智能体框架——lagent初探
  • torch.max和torch.softmax python max
  • 【算法】字符串算法技巧系列
  • nginx 配置 本地启动
  • 二、BIO、NIO编程与直接内存、零拷贝
  • ubuntu18升级至ubuntu20
  • 【STM32+CubeMX】 新建一个工程(STM32F407)
  • QT 下拉菜单设置参数 起始端口/结束端口/线程数量 端口扫描4
  • python无需验证码免登录12306抢票 --selenium(2)
  • CODESYS MODBUS TCP通信(禾川Q1 PLC作为MODBUS TCP从站)
  • Vue 3 和 Electron 来构建一个桌面端应用
  • 【python/html/js 鼠标点选/框选图片内容】
  • gorm使用Session()函数后where条件不生效
  • matlab系列专栏-快捷键速查手册
  • 为什么页面无法正确显示?都有哪些HTML和CSS相关问题?
  • uniapp打包到宝塔并发布
  • OSPF浅析
  • 使用 uniapp 开发微信小程序遇到的坑
  • 关于ssh-server在windows系统中进行部署及通过mobaxterm中ssh隧道技术实现不同网段之间进行网络通讯的问题
  • Mycat2使用教程
  • Three.js 基础概念:构建3D世界的核心要素