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;

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

最后成功发布;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/892039.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot数据层解决方案

文章目录 1. 数据层解决方案2. 数据源技术 1. 数据层解决方案 现有数据层解决方案技术选型:Druid MyBatis-Plus MySQL 数据源:DruidDataSource持久化技术:MyBatis-Plus / MyBatis数据库:MySQL 下面的研究就分为三个层面进行研…

00_basic_gemm

说明 这里研究的cutlass版本是3.5 gemm讲解 using CutlassGemm cutlass::gemm::device::Gemm<float, // Data-type of A matrixColumnMajor, // Layout of A matrixfloat, // Data-type of B matrixColumnMajor, // Layout of B matrixfloat, // …

永磁同步电机模型预测控制——模型预测研究现状

永磁同步电机 (PMSM) 模型预测控制 (MPC) 研究现状 永磁同步电机 (PMSM) 控制系统是一个强耦合的非线性系统&#xff0c;传统的磁场定向控制 (FOC) 和直接转矩控制 (DTC) 在一些高性能特殊应用场合下难以满足控制需求。为了应对这些挑战&#xff0c;研究人员在 FOC 和 DTC 的基…

Clisoft SOS设置Server和Project

Clisoft SOS设置Server和Project 一、关于SOS Servers、Clients、Projects和Work Areas 以下三个图是官方文档中介绍的三种情况 图1&#xff1a;带有两个客户端的SOS服务器 图2&#xff1a;使用本地缓存服务器 图3&#xff1a;远程设计团队的缓存服务器 因为SOS软件需要…

gaussdb中怎么查询一个表有多少GB

在 GaussDB 中&#xff0c;你可以通过多种方法查询一个表的大小&#xff0c;包括使用系统视图和内置函数。以下是几种常见的方法&#xff1a; 1. 使用 pg_total_relation_size 函数 pg_total_relation_size 函数返回一个表及其所有索引和 TOAST 数据的总大小。 示例查询 SE…

[python3]Excel解析库-calamine,10倍openpyxl性能

calamine 是一个用于读取多种电子表格格式&#xff08;如 Excel、LibreOffice Calc 等&#xff09;的 Python 库。它支持 .xls, .xlsx, .ods 和 .csv 文件格式&#xff0c;提供了简单易用的 API 来加载和处理电子表格数据。calamine 的一大特点是它的轻量级和高效性&#xff0c…

探索 Android Instant Apps:InstantAppInfo 的深入解析与架构设计

探索 Android Instant Apps&#xff1a;InstantAppInfo 的深入解析与架构设计 引言 随着移动应用的快速发展&#xff0c;用户对应用体验的要求越来越高。为了提升用户体验&#xff0c;Google 在 2016 年推出了 Android Instant Apps 这一概念。Instant Apps 允许用户在不安装…

调整Python+Pytest+Allure+Yaml+Pymysql框架中需要执行的用例顺序

当pytest框架中有时时候会因为用例的前后关联关系需要调整用例执行顺序时则可以跟进具体的要求调整pytest.ini配置文件中执行用例文件夹的前后顺序 当如果是需要调整某个文件夹中用例的执行顺序时&#xff0c;则跟进具体的文件调整对应testcases中test_*.py文件中的执行顺序

interval coverage

题意理解&#xff1a;给定一个区间&#xff0c;我们需要把这个区间覆盖掉。问最少需要的区间数目。当然我们会给定 n 个区间选择。假设全选都不能覆盖就输出 − 1 -1 −1 思路分析&#xff1a;我感觉应该是找区间的端点。假设区间的左端点是 s &#xff0c;右端点是 t &#…

【Dify】Dify自定义模型设置 | 对接DMXAPI使用打折 Openai GPT 或 Claude3.5系列模型方法详解

一、Dify & DMXAPI 1、Dify DIFY&#xff08;Do It For You&#xff09;是一种自动化工具或服务&#xff0c;旨在帮助用户简化操作&#xff0c;减少繁琐的手动操作&#xff0c;提升工作效率。通过DIFY&#xff0c;用户能够快速完成任务、获取所需数据&#xff0c;并且可以…

C++编程基础之override关键字

在C中&#xff0c;override关键字用于显式地标识派生类中的成员函数是对基类中虚函数的重写&#xff0c;具有以下重要作用和使用说明&#xff1a; 作用 增强代码可读性&#xff1a;通过使用override关键字&#xff0c;能够清晰地向阅读代码的人表明该函数是有意重写基类中的虚…

Redis数据库笔记—— Hash(哈希)的扩容机制(rehash)

大家好&#xff0c;这里是Good Note&#xff0c;关注 公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。详细介绍Hash&#xff08;哈希&#xff09;的扩容机制(rehash)、源码、以及扩容和缩容过程。 文章目录 Redis 字典&#xff08;dict&#xff09;结构源码哈希…

Python自学 - 封装与私有化

1 Python自学 - 封装与私有化 1.1 封装的概念 封装是指将数据和方法封装在一起&#xff0c;并且需要通过类的实例来访问&#xff0c;这样就可以确保合适的方法来处理合适的数据&#xff0c;并可以做到只给外界看到想给外界看到的接口&#xff0c;减少数据或方法被滥用的风险。…

网络安全常见的问题

1. 什么是 DDoS 攻击&#xff1f;如何防范&#xff1f; 答&#xff1a;DDoS 攻击是指利用大量的计算机或者其他网络设备&#xff0c;同时向目标网络或者服务器 发送 大量的数据流量&#xff0c;以致其无法正常工作&#xff0c;从而导致网络瘫痪或者服务器宕机的攻击行 为。 …

<rust>在rust中,实现32位浮点数与16进制之间的转换

前言 本文是基于rust&#xff0c;对16进制、32位浮点数之间的互相转换的一个简单示例。 环境配置 系统&#xff1a;windows 平台&#xff1a;visual studio code 语言&#xff1a;rust 库&#xff1a;hex 关键依赖 hex"0.4.3"对于字符串与16进制之间的互相转换&am…

pytest日志显示

在 pytest 中&#xff0c;可以通过 钩子函数 和 配置文件 pytest.ini 配置日志的显示方式&#xff0c;实现对日志的灵活控制。以下是常用实现方式及配置说明。 方式一&#xff1a;使用 conftest.py 钩子函数自定义日志显示 通过 conftest.py 文件中的钩子函数&#xff0c;实现…

支持向量机算法(一):像讲故事一样讲明白它的原理及实现奥秘

1、支持向量机算法介绍 支持向量机&#xff08;Support Vector Machine&#xff0c;SVM&#xff09;是一种基于统计学习理论的模式识别方法&#xff0c; 属于有监督学习模型&#xff0c;主要用于解决数据分类问题。SVM将每个样本数据表示为空间中的点&#xff0c;使不同类别的…

ES中的仓库和快照

文章目录 简介仓库&#xff08;Repository&#xff09;快照&#xff08;Snapshot&#xff09;常用命令记录 简介 在Elasticsearch&#xff08;简称ES&#xff09;中&#xff0c;仓库&#xff08;repository&#xff09;和快照&#xff08;snapshot&#xff09;是两种重要的备份…

数据结构与算法之二叉树: LeetCode 108. 将有序数组转换为二叉搜索树 (Ts版)

将有序数组转换为二叉搜索树 https://leetcode.cn/problems/convert-sorted-array-to-binary-search-tree/description/ 描述 给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列请你将其转换为一棵 平衡 二叉搜索树 示例 1 输入&#xff1a;nums [-10,-3,0,5,9…

Neo4j的部署和操作

注&#xff1a;本博文展示部署哥操作步骤和命令&#xff0c;具体报告及运行截图可通过上方免费资源绑定下载 一&#xff0e;数据库的部署与配置 在单个节点上对进行数据库的单机部署 &#xff08;1&#xff09;上传neo4j-community-3.5.30-unix.tar.gz到hadoop1的/export/so…