Cesium加载ArcGIS的PBF矢量切片服务
Cesium 加载 ArcGIS 的 PBF 矢量切片服务
矢量切片(Vector Tiles)
在 Cesium 中,我们使用的地图服务均为传统的栅格切片服务。即在服务端渲染好图片并进行切片,客户端请求获取图片后直接显示。
而矢量切片则有别于传统的栅格切片,它在服务端切片存储的是矢量数据的描述文件,最终的渲染在客户端完成。
事实上矢量切片技术目前已成为互联网地图的主流技术,无论是 Mapbox 还是高德地图、百度地图,如今打开控制台看到的数据源请求不是当年传统的一张张图片切片,而是经过压缩的二进制数据。
矢量切片的特点:
- 客户端渲染:由于服务器只存储二进制的矢量数据和样式文件,所以渲染的任务会落在客户端上。因为对于动态服务而言,可以极大的减小服务器的压力(不需要服务端实时渲染)。对于切片数据而言,修改样式不再需要重新切片。并且在数据传输中保密性会更高,不容易被爬取。但是相反,会增加客户端的渲染压力。
- 瓦片更小:矢量瓦片的大小通常会远小于栅格栅格瓦片,可以使得数据传输更快以及使用更低的带宽。
- 允许多套配色方案:矢量切片的渲染效果由样式文件的内容决定,通过定义不同的样式文件,能够实现切换多套配色方案。
- 不需要很高的切片层级:由于服务端返回的是矢量数据,因此客户端可以绘制很高精度的地图,不需要通过提高切片的层级实现,能够极大的减少服务器的存储压力。
Cesium 支持矢量切片
Cesium 支持矢量切片服务的 Issues Vector Tiles #2132 在 2014 年就已经提出了,但一直没有得到官方的支持。
在民间,也有其他的解决方案,但大多都是利用 MapBox 或者 Openlayer 来渲染矢量切片来实现。如果单单为了支持矢量切片来说,这样实现太重。
因此经过研究,本人实现了一个极其轻量级的渲染方案,几乎相当于纯原生实现。
主要实现思路就是请求PBF、解析并根据样式文件将PBF上的内容绘制到 Canvas 上。最后利用 Cesium 的影像渲染机制渲染出来,目前情况如下:
- 主要适配 ArcGIS 发布的 PBF 矢量切片(国内使用最多,但是在 Cesium 中没有很好的支持方案)
- 支持 ArcGIS 中定义的样式文件(允许自己额外添加规则)
- 具备缓存机制(请求过的 PBF 文件不会重复请求)
- 允许渲染超过切片层级的瓦片(如切片到 14 级,但是客户端能一直渲染到 26 级)
- 支持 4326、3857、4490 坐标系
- 支持渲染精灵图
实际效果
Cesium加载ArcGIS发布的PBF矢量切片服务
原文链接
Cesium 加载 ArcGIS 的 PBF 矢量切片服务
Cesium加载ArcGIS的PBF矢量切片服务相关推荐
- cesium加载arcgis server地图服务
1.制作arcgis server服务 从bigmap中下载了全球1-8级 arcgis 瓦片,配置arcgis地图服务,并发布服务 http://www.bigemap.com/helps/doc2 ...
- cesium加载arcgis切片
cesium 加载arcmap切片 jpg // z 是缩放级别 x是从左到右 y是从上到下 var imageryUrl = '/images/{z}/{x}/{y}.jpg';//影像数据var ...
- Cesium加载geoserver发布的wms地图服务-设置BBOX参数无效
一.问题描述: 地图服务是geoserver发布的wms地图服务,使用cesium加载渲染,加载代码如下. // Cesium加载wms var wms = new Cesium.WebMapServ ...
- Cesium 加载mapboxgl最新失量切片(mvt)
#原因 参照Openlayers提供的样式加载,发现样式没有mapboxgl加载好看,如果更换mapboxgl版本或者采用自发布地图,还需要调整代码,因此参考mapboxgl底层,重新进行了优化 #思 ...
- arcgis pro发布矢量切片服务及利用arcgis api for javascript进行调用
该文章已迁移至微信公众号,地址见: https://mp.weixin.qq.com/s/IDhD0JctuZUgOLMOJIoYew
- cesium加载cgcs2000\wgs84坐标系解决方式
关于cesium加载cgcs2000\wgs84坐标系的切片,两种解决方式: 1-修改cesium的源码, 2-使用代理,转发发布的源切片. 更多文章请关注公众号查看!
- React框架+cesium加载GeoWebCache发布4326WMTS服务的ArcGIS切片图层请求400问题
前言 由于业务的要求,需要在前端展示个性化美化的地图底图,尝试使用mapbox的配置和其它方案去搞Geojson格式的,但是个性化比较麻烦,而且门槛较高,不好配置,于是本菜鸟使用arcMap来美化底图 ...
- 开源GIS(二)——openlayers加载Arcgis和geoserver在线离线切片
一.引言 开始开源gis的不归路,第一课便是加载底图,底图目前主流的都是wmts,以后会研究一下wms,本文介绍了普通网络在线切片(如谷歌百度高德等).Arcgis在线切片与离线切片.openlaye ...
- cesium 加载Googl式的切片
cesium 加载Googl式的切片 首先配置个iis本地服务器 把项目放到iis服务器路径里边 代码 var viewer = new Cesium.Viewer('cesiumContainer' ...
最新文章
- cifs------网络文件系统(1)
- 一步步部署SharePoint Workflow 2013
- 3 saltstack高可用
- webpack的基本配置项
- 解决 ASP.NET Core 部署到 IIS,更新项目时文件夹正在使用错误
- Json Schema的使用
- C# 淘宝商品微信返利助手开发-(六)返利助手开发(4)如何通过淘口令解析的出来的地址获得返利信息
- 【转载】浅析输入法原理
- 【翻译】针对多种设备定制Ext JS 5应用程序
- 06-spring学习-自动装配
- python自动获取邮件数据_Python 获取测试报告内容并发送邮件
- Java并行编程–从并行任务集获取反馈
- 4.4.4 无锁的对象引用:AtomicReference和AtomicStampedReference
- python比java_对比java和python对比
- 官网下载STM32系列芯片的产品选型手册
- Gephi最详细安装教程没有之一
- 【屏类型结构体定义PanelType】 文档位置:《apiPNL.h》
- Swift Archiving序列化
- 有功,无功,视在功率的关系公式和图
- selenium自动化之登录淘宝自动下单案例
热门文章
- py-faster-rcnn 中 shell脚本解读:./experiments/scripts/faster_rcnn_alt_opt.sh
- 最强大的PDF编辑器Adobe Acrobat DC Pro
- Android 电子书
- ffmpeg 提取音频,音频转换,添加字幕
- Oracle数据库服务
- 在线代码编辑器:Codeanywhere介绍
- python大数据之异常值处理
- 基于目标检测实现遥感场景下的车辆检测计数
- ubuntu14.04安装theano,cuda7.5
- @Inherited