Mapbox矢量瓦片pbf文件信息解析
Mapbox由于配合其矢量瓦片pbf格式文件,有突出的渲染性能,被很多公司和开发者所使用。矢量瓦片的格式有很多种,其中pbf格式是一种二进制文件,直接把数据信息压缩位二进制了。
矢量瓦片优势
主要优势有
- 数据传输量小
相对与栅格瓦片数据量大大缩小 - 不受分辨率影响
矢量瓦片无论在地图放大到各种级别都是清晰的,都不会出现栅格放大后显示像元的问题。 - 动态样式
矢量瓦片会根据用户的定制的样式动态绘制,也可以动态改变 - 支持前端查询
由于使用的是矢量瓦片,可以在前端直接进行信息查询
矢量瓦片的问题
矢量瓦片的优势虽然多,但问题也很明显,坐标和属性信息是可以被用户解析的,也就是安全性的问题。
Mapbox的pbf瓦片解析
今天就展示一下,如何解析Mapbox的pbf瓦片文件。这里我是用node.js进行开发和测试的。从Mabox地图的url中抓取了一个pbf文件。
依赖
{"name": "testpbf","version": "1.0.0","description": "","main": "index.js","scripts": {"test": "echo \"Error: no test specified\" && exit 1"},"author": "","license": "ISC","dependencies": {"fs": "^0.0.1-security","pbf": "^3.0.5","vector-tile": "^1.3.0"}
}
js解析代码
var Pbf = require('pbf');
var fs = require('fs');
var VectorTile = require('vector-tile').VectorTile;var data = fs.readFileSync('response.pbf');
var tile = new VectorTile(new Pbf(data));var layerNames = Object.keys(tile.layers);
console.log("图层名称", layerNames);
if (layerNames.length > 0) {//获取其中一个图层的一个要素的geoJson格式;var orig = tile.layers[layerNames[0]].feature(0).toGeoJSON(0, 0, 1);console.log("geojson", orig);//查看坐标console.log("部分坐标",orig.geometry.coordinates[0]);
}
运行代码
node index.js
输出结果
"C:\Program Files\nodejs\node.exe" index.js
图层名称 [ 'dt_xzy' ]
geojson {type: 'Feature',geometry: { type: 'MultiPolygon', coordinates: [ [Array], [Array], [Array] ] },properties: {objectid: 5050,qhdm: '411525112',qhmc: '陈集乡',sjxzqdm: '411525',bz: ' ',provincecode: '41',citycode: '4115',countycode: '411525',uuid: ' ',mj: 148351.45}
}
部分坐标 [[[ -110.6103515625, 85.34532513469131 ],[ -110.8740234375, 85.19679703289734 ],[ -109.775390625, 85.15985908749309 ],[ -109.3798828125, 85.05112877980659 ],..........................................[ -149.58984375, 84.67351256610525 ],[ -148.53515625, 84.68980559853495 ],[ -148.447265625, 84.79051706762746 ],[ -151.0400390625, 85.01689202162626 ],[ -151.0400390625, 85.18205572307536 ],[ -154.3359375, 85.34532513469131 ],[ -110.6103515625, 85.34532513469131 ]]
]Process finished with exit code 0
矢量瓦片使用注意
从上面的代码可以看出pbf文件是可以被解析出来的,所以在使用时一定要注意
- 数据脱敏
- 坐标数据脱密
- 防爬虫抓取
Mapbox矢量瓦片pbf文件信息解析相关推荐
- delphi bmp绘制矢量文件效率慢_聊一聊矢量瓦片的常识
一.矢量瓦片的基本原理和相关格式 现阶段,电子地图瓦片主要使用两种方式,一种是传统的栅格瓦片,另外一种是新出的矢量瓦片(Vector Tiles),前者是采用四叉树金字塔模型的分级方式,将地图切割成无 ...
- 矢量切片_数据粒度均衡的二维矢量瓦片构建方法
作 者 信 息 应 申1,2,王子豪1,杜志强3,丁火平4, 李翔翔4 (1. 武汉大学 资源与环境科学学院,湖北 武汉 430079:2. 自然资源部城市国土资源监测与仿真重点实验室,广东 深圳 5 ...
- 地图瓦片:矢量瓦片和栅格瓦片详解
地图瓦片:矢量瓦片和栅格瓦片详解 为什么需要瓦片: 地图缓存技术:地图服务的性能需求越来越高:缓存技术大大提高了地图服务的性能:缓存技术降低了服务器端压力,不在需要进行动态出图:地图缓存或瓦块地图可以 ...
- 基于矢量瓦片技术的Web电子海图优化方法
范梦琪, 宋伟东, 郑人维, 何欢. 2021. 基于矢量瓦片技术的Web电子海图优化方法[J]. 海洋科学, 45(2): 68-75. FAN Meng-qi, SONG Wei-dong, ZH ...
- java 生成瓦片_生成矢量瓦片 | SuperMap iDesktop Java
SuperMap iDesktop 桌面产品支持将矢量地图生成遵循 MapBox MVT 规范的矢量瓦片(.mvt),瓦片数据包含要素的几何形状与属性信息,而要素的风格样式由 MapBox 标准样式文 ...
- OpenLayers实例-Advanced Mapbox Vector Tiles-高级Mapbox矢量贴图
Advanced Mapbox Vector Tiles-高级Mapbox矢量贴图 知识要点 (主要)使用此方法加载矢量地图可以在缩放级别时重用相同的源瓦片,一定程度上节省移动设备的带宽,网络环境不好 ...
- SuperMap地图系列:矢量瓦片的应用
作者:xinxin 背景 以图片为介质的栅格瓦片使得在线地图显示效果高,传输方便,但随着地图的移动化和应用的逐渐深入,栅格瓦片占用宽带和存储空间都较大,不利于地图在移动设备上的应用:另外,生成栅格 ...
- Maputnik样式信息解析(Mapbox-GL样式)
具体可参考Mapbox-GL 当前Mapbox GL JS版本(v2.4.1),Style版本目前任然是8的版本 其他更改在以后的研究中逐渐总结,下面主要介绍新版的样式参考.样式文件为json结构,具 ...
- Web端MVT矢量瓦片加载之OpenLayers篇
作者:LX 前言 MVT全称是Mapbox Vector Tile,是Mapbox标准的矢量切片.矢量瓦片具有创建效率高.传输和渲染速度快.数据和风格样式独立,更改配图方案无需重新创建瓦片.高显示质量 ...
最新文章
- arm el2与el3_armv8 memory translation
- html实体编码_多视角学习 | 当自动编码器“遇上”自动编码网络
- bootstrap table 分页_Java入门007~springboot+freemarker+bootstrap快速实现分页功能
- python实用么_使用Python这么多年,才发现Python还有这些实用的功能和特点
- MySQL系列:数据库基本操作(1)
- java进销存系统源码_青云源码——最新企业进销存管理系统源码分享
- 大多数项目能不能投资,能不能去创业,取决于自己是站在什么高度看问题
- 赚钱的一大障碍:知道的赚钱门路太多
- Timus 1741
- (转)iOS 屏幕适配
- 关于JS的面向对象总结
- 使用iTunes制作iPhone6s plus铃声
- python爬虫记录
- 大学生就业的三方协议基本概述
- Python练习task2:条件与循环
- Windows Server 2012 新功能:IPAM 配置
- [VB.NET]VB的vbFromUnicode、vbUnicode在vb.net中怎么使用
- 如何推导出Gamma分布
- linux挂载文件夹哪个最好,细说linux挂载——mount,及其他……
- WINSYS DAY02(02):如何管理组账号?
热门文章
- 【STM32】STM32之SWD
- Luogu 4844 LJJ爱数数
- Spring(https://www.zhihu.com/question/38597960)
- 【知识图谱】 一个有效的知识图谱是如何构建的?
- MySQLStudy——Mac 下 Navicat Premium 12.1破解教程
- 智联卓聘 卓聘聊聊(IM)开发实践
- 程序员面对产品提出的不合理需求,你们会怎么办?
- python 双重差分_双重差分的理论与实践
- 在Git上如何强推代码规范
- php wss发送,HTTPS 连接WSS问题