点、线、面生成mvt(MapBox Vector Tile)格式的瓦片总结

2023-11-15

矢量切片可以以三种形式呈现:GeoJSON、TopoJSON 和 MapBox Vector Tile(.mvt),矢量切片技术继承了矢量数据和切片地图的双重优势,有以下优点:

  • 瓦片以mvt格式的存储,是以每一个瓦片号为基准进行存储的。大小都是256*256;粒度更小,信息接近无损;前端可根据数据定制渲染样式;数据更新快,更灵活;
  • .mvt 压缩率更高,体积更小;

一、瓦片生成逻辑

1. 点:

遍历瓦片级别
每一级别:经纬度转像素坐标
像素坐标计算所在瓦片号
像素坐标转瓦片内像素坐标

根据瓦片内像素坐标:进行聚合————同一个像素点聚合后记录一个,并记录叠加数,后续可以做热力图;

2. 面:

面,因为需要面所在的每一个瓦片都存储其几何geometry,即使只相交了一个角。
生成相对特殊一些;

(1)计算面的外接矩形框
(2)遍历瓦片级别,根据外接矩形框计算不同级别的瓦片号最大,最小范围
(3)从小到大的遍历瓦片范围,判断瓦片的矩形几何与面是否相交,相交则生成瓦片并存储,不相交则不生成瓦片;
(4)面的集合:经纬度转像素坐标,像素坐标计算所在瓦片号,像素坐标转瓦片内像素坐标;在每一个瓦片里均存储面;

【优化:对面的几何点进行抽稀】

根据瓦片内像素坐标:进行聚合——同一个像素点聚合后记录一个,抽稀以减少数据量
由于面的起点、终点相同,少于4个点的无法构成面,舍弃;大于等于4个点的生成瓦片;

3. 线:

线的类似面,只不过少于2个点的舍弃,大于等于俩个点的生成瓦片;

二、地理信息:用到的maven pom依赖:

<dependency>
   <groupId>no.ecc.vectortile</groupId>
    <artifactId>java-vector-tile</artifactId>
    <version>1.2.1</version>
</dependency>
<dependency>
   <groupId>com.vividsolutions</groupId>
    <artifactId>jts</artifactId>
    <version>1.13</version>
</dependency>
<dependency>
    <groupId>org.geotools</groupId>
    <artifactId>gt-geojson</artifactId>
    <version>19.0</version>
</dependency>
<dependency>
    <groupId>org.osgeo</groupId>
    <artifactId>proj4j</artifactId>
    <version>0.1.0</version>
</dependency>

参考

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

点、线、面生成mvt(MapBox Vector Tile)格式的瓦片总结 的相关文章

随机推荐

  • Eclipse搭建stm32+jlink开发环境全攻略

    Eclipse搭建stm32 jlink开发环境全攻略 初级篇 前言 为什么需要这样的开发环境 免费 跨平台 自由度高 Eclipse代码提示功能强大 MDK弱爆了 注 本人原创 转载注明作者 by 秋之前 email xia mengli
  • paddleOCR踩坑记

    paddleOCR踩坑记 训练莫名终止或者评估莫名终止 训练和评估的效果都特别好 预测的效果却特别差 使用gen label py报错 将paddleOCR转成pytorch框架 训练莫名终止或者评估莫名终止 这是因为在tools prog
  • 2023全国大学生数学建模竞赛B题思路模型代码

    目录 一 选题建议先发布 思路模型代码论文第一时间更新 获取见文末名片 二 选题建议 后续思路代码论文 B 题 多波束测线问题 各题分析 获取完整思路代码见此处名片 一 选题建议先发布 思路模型代码论文第一时间更新 获取见文末名片 二 选题
  • python使用matplotlib:subplot绘制多个子图

    CSDN GitHub python使用matplotlib subplot绘制多个子图 AderXCoding language python matplotlib subplot 转自 https blog csdn net gatie
  • 解决eclipse启动报错问题:Could not create the Java Virtual Machine...

    电脑重装系统后 下了很多软件 其中就包括eclipse 但是在安装好后打开eclipse时报错 点击确定出现下面这样 网上找了原因 是因为自己在安装JDK的时候在C windows System32文件中生成了三个文件java exe ja
  • vue.js 开发环境搭建最简单攻略

    更新 本篇文章是我很之前写的 对于一些没有工作 或者js基础不太好的同学 建议不必大费周章去搭建环境 可以直接引用 vue js 就可以进行学习 练习 有些过程是水到渠成的 当初很多不懂的东西慢慢就懂了 官方指南假设你已有HTML CSS和
  • 小学数学题的Java实现

    昨天 去朋友家一起做饭 刚好有小孩问我问题 说你不是学计算机的吗 那你教我做一道数学题 我刚开始看的时候愣了一下 不过 想了一会还是解决 题目是这样的 有一袋糖果 每次从袋子里面拿走一半又放进袋子一颗 经过5次操作后 袋子还剩余4颗糖果 请
  • CH07_封装

    封装记录 Encapsulate Record 162 曾用名 以数据类代替记录 Replace Record with Data Class organization name Acme Gooseberries country GB c
  • PHP 视频或信息 保持唯一推荐

    redis RedisCli origicount redis gt scard original 查看数据是否为空 if origicount recommend M video gt field videoId gt where is
  • 100位特邀用户亲测GPT-4

    在首期Beezy4 0体验官优秀案例集中 部分用户展示了GPT 3 5和GPT 4 0在小红书文案 创意脚本生成上的应用对比 今天我们将选取其中的典型案例进行分析 看一下GPT 3 5和GPT 4 0在文案写作领域的表现有何不同 优秀案例
  • 全球哪些顶级的公司在使用Python?Python的性能如何?

    目前有超过500种编程语言 每天仍在新增更多新语言 虽然其中有大部分重叠的语言以及大量仅用于理论和试验的编程语言 但一个人的时间和精力有限 你只能挑选几种甚至一种深入学习 没有基础的小白该从哪下手呢 不如就选python吧 我们主张从pyt
  • ckeditor4 上传图片压缩 图片压缩后上传 上传文件前处理 上传图片之前压缩图片

    网上搜不到合适的例子 所以写了一个 感觉应该有一些参考价值 核心就是ckeditor中的一个属性 fileUploadRequest 下面看例子 const questionBodyEditor CKEDITOR replace quest
  • 【R语言】实验一 R 语言数据结构、数据导入与数据处理

    系列文章目录 实验一 R 语言数据结构 数据导入与数据处理 实验二 基本数据处理 实验三 数据可视化 实验四 数据分析 实验五 综合应用 实验数据 实验数据下载 1 algae 数据集 season size speed mxPH mnO2
  • selenium 自动化测试工具(七)python日志logging基本用法、高级用法

    设置logging import logging import time import os class LoggingMethod def getlogger self logger logging getLogger logger se
  • 使用Git上传代码到GitHub

    首先需要一个github账号 所有还没有的话先去注册吧 https github com 使用git需要先安装git工具 这里给出下载地址 下载后一路直接安装即可 https git for windows github io 1 进入Gi
  • LeetCode 1 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

    LeetCode 1 给定一个整数数组 nums 和一个目标值 target 请你在该数组中找出和为目标值的那 两个 整数 并返回他们的数组下标 你可以假设每种输入只会对应一个答案 但是 你不能重复利用这个数组中同样的元素 示例 给定 nu
  • 第十四届蓝桥杯第三期模拟赛(python版)

    总体难度不大 正赛肯定比这难 本人答案代码样例都能过 前五个填空题正确性应该都问题不大 有更好方法欢迎放出来 大题但可能有一些细节没有考虑到 时间复杂度这一方面是都考虑了的 大题仅供参考 有更好的方法的 欢迎讨论 目录 问题1 问题2 问题
  • 项目总结:如何开发出好的项目

    每件事都需要考虑它的价值 然后决定投入 1 项目如果要做的好 必须要有丰富的文档支持 文档的意义在于只有形成文档 才能更好的去沟通和判断 对有可能出现问题的地方提前预警 另外 任何一个系统不只有开发成本 运维成本有时会超出我们的想象 即便一
  • 卷积神经网络在自然语言处理中的应用

    卷积神经网络最典型的应用领域是计算机视觉 卷积神经网络在图像分类中取得了重大突破 典型应用有facebook的图像自动标注 还有自动驾驶等 卷积神经网络也可以用于自然语言处理 由于卷积神经网络在计算机视觉中的应用最广 首先阐述这个 然后再介
  • 点、线、面生成mvt(MapBox Vector Tile)格式的瓦片总结

    矢量切片可以以三种形式呈现 GeoJSON TopoJSON 和 MapBox Vector Tile mvt 矢量切片技术继承了矢量数据和切片地图的双重优势 有以下优点 瓦片以mvt格式的存储 是以每一个瓦片号为基准进行存储的 大小都是2