Cesium 加载 ArcGIS 的 PBF 矢量切片服务

矢量切片(Vector Tiles)

在 Cesium 中,我们使用的地图服务均为传统的栅格切片服务。即在服务端渲染好图片并进行切片,客户端请求获取图片后直接显示。

而矢量切片则有别于传统的栅格切片,它在服务端切片存储的是矢量数据的描述文件,最终的渲染在客户端完成。

事实上矢量切片技术目前已成为互联网地图的主流技术,无论是 Mapbox 还是高德地图、百度地图,如今打开控制台看到的数据源请求不是当年传统的一张张图片切片,而是经过压缩的二进制数据。

矢量切片的特点:

  1. 客户端渲染:由于服务器只存储二进制的矢量数据和样式文件,所以渲染的任务会落在客户端上。因为对于动态服务而言,可以极大的减小服务器的压力(不需要服务端实时渲染)。对于切片数据而言,修改样式不再需要重新切片。并且在数据传输中保密性会更高,不容易被爬取。但是相反,会增加客户端的渲染压力。
  2. 瓦片更小:矢量瓦片的大小通常会远小于栅格栅格瓦片,可以使得数据传输更快以及使用更低的带宽。
  3. 允许多套配色方案:矢量切片的渲染效果由样式文件的内容决定,通过定义不同的样式文件,能够实现切换多套配色方案。
  4. 不需要很高的切片层级:由于服务端返回的是矢量数据,因此客户端可以绘制很高精度的地图,不需要通过提高切片的层级实现,能够极大的减少服务器的存储压力。

Cesium 支持矢量切片

Cesium 支持矢量切片服务的 Issues Vector Tiles #2132 在 2014 年就已经提出了,但一直没有得到官方的支持

在民间,也有其他的解决方案,但大多都是利用 MapBox 或者 Openlayer 来渲染矢量切片来实现。如果单单为了支持矢量切片来说,这样实现太重。

因此经过研究,本人实现了一个极其轻量级的渲染方案,几乎相当于纯原生实现。

主要实现思路就是请求PBF、解析并根据样式文件将PBF上的内容绘制到 Canvas 上。最后利用 Cesium 的影像渲染机制渲染出来,目前情况如下:

  1. 主要适配 ArcGIS 发布的 PBF 矢量切片(国内使用最多,但是在 Cesium 中没有很好的支持方案)
  2. 支持 ArcGIS 中定义的样式文件(允许自己额外添加规则)
  3. 具备缓存机制(请求过的 PBF 文件不会重复请求)
  4. 允许渲染超过切片层级的瓦片(如切片到 14 级,但是客户端能一直渲染到 26 级)
  5. 支持 4326、3857、4490 坐标系
  6. 支持渲染精灵图

实际效果

Cesium加载ArcGIS发布的PBF矢量切片服务

原文链接

Cesium 加载 ArcGIS 的 PBF 矢量切片服务

Cesium加载ArcGIS的PBF矢量切片服务相关推荐

  1. cesium加载arcgis server地图服务

    1.制作arcgis server服务 从bigmap中下载了全球1-8级 arcgis 瓦片,配置arcgis地图服务,并发布服务 http://www.bigemap.com/helps/doc2 ...

  2. cesium加载arcgis切片

    cesium 加载arcmap切片 jpg // z 是缩放级别 x是从左到右 y是从上到下 var imageryUrl = '/images/{z}/{x}/{y}.jpg';//影像数据var ...

  3. Cesium加载geoserver发布的wms地图服务-设置BBOX参数无效

    一.问题描述: 地图服务是geoserver发布的wms地图服务,使用cesium加载渲染,加载代码如下. // Cesium加载wms var wms = new Cesium.WebMapServ ...

  4. Cesium 加载mapboxgl最新失量切片(mvt)

    #原因 参照Openlayers提供的样式加载,发现样式没有mapboxgl加载好看,如果更换mapboxgl版本或者采用自发布地图,还需要调整代码,因此参考mapboxgl底层,重新进行了优化 #思 ...

  5. arcgis pro发布矢量切片服务及利用arcgis api for javascript进行调用

    该文章已迁移至微信公众号,地址见: https://mp.weixin.qq.com/s/IDhD0JctuZUgOLMOJIoYew

  6. cesium加载cgcs2000\wgs84坐标系解决方式

    关于cesium加载cgcs2000\wgs84坐标系的切片,两种解决方式: 1-修改cesium的源码, 2-使用代理,转发发布的源切片. 更多文章请关注公众号查看!

  7. React框架+cesium加载GeoWebCache发布4326WMTS服务的ArcGIS切片图层请求400问题

    前言 由于业务的要求,需要在前端展示个性化美化的地图底图,尝试使用mapbox的配置和其它方案去搞Geojson格式的,但是个性化比较麻烦,而且门槛较高,不好配置,于是本菜鸟使用arcMap来美化底图 ...

  8. 开源GIS(二)——openlayers加载Arcgis和geoserver在线离线切片

    一.引言 开始开源gis的不归路,第一课便是加载底图,底图目前主流的都是wmts,以后会研究一下wms,本文介绍了普通网络在线切片(如谷歌百度高德等).Arcgis在线切片与离线切片.openlaye ...

  9. cesium 加载Googl式的切片

    cesium 加载Googl式的切片 首先配置个iis本地服务器 把项目放到iis服务器路径里边 代码 var viewer = new Cesium.Viewer('cesiumContainer' ...

最新文章

  1. cifs------网络文件系统(1)
  2. 一步步部署SharePoint Workflow 2013
  3. 3 saltstack高可用
  4. webpack的基本配置项
  5. 解决 ASP.NET Core 部署到 IIS,更新项目时文件夹正在使用错误
  6. Json Schema的使用
  7. C# 淘宝商品微信返利助手开发-(六)返利助手开发(4)如何通过淘口令解析的出来的地址获得返利信息
  8. 【转载】浅析输入法原理
  9. 【翻译】针对多种设备定制Ext JS 5应用程序
  10. 06-spring学习-自动装配
  11. python自动获取邮件数据_Python 获取测试报告内容并发送邮件
  12. Java并行编程–从并行任务集获取反馈
  13. 4.4.4 无锁的对象引用:AtomicReference和AtomicStampedReference
  14. python比java_对比java和python对比
  15. 官网下载STM32系列芯片的产品选型手册
  16. Gephi最详细安装教程没有之一
  17. 【屏类型结构体定义PanelType】 文档位置:《apiPNL.h》
  18. Swift Archiving序列化
  19. 有功,无功,视在功率的关系公式和图
  20. selenium自动化之登录淘宝自动下单案例

热门文章

  1. py-faster-rcnn 中 shell脚本解读:./experiments/scripts/faster_rcnn_alt_opt.sh
  2. 最强大的PDF编辑器Adobe Acrobat DC Pro
  3. Android 电子书
  4. ffmpeg 提取音频,音频转换,添加字幕
  5. Oracle数据库服务
  6. 在线代码编辑器:Codeanywhere介绍
  7. python大数据之异常值处理
  8. 基于目标检测实现遥感场景下的车辆检测计数
  9. ubuntu14.04安装theano,cuda7.5
  10. @Inherited