矢量切片——集美貌与才华于一身的底图方案

2024-03-23 15:50

本文主要是介绍矢量切片——集美貌与才华于一身的底图方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Esri在2016年2月份推出新ArcGIS 10.4版本以及ArcGIS Pro 1.2,从能力上来讲可以发现ArcGIS一直在拥抱新技术,从时下很热的大数据、实时GIS等,这些方向都是未来的发展趋势并且有着很大的发展空间。在新的GIS技术和时代背景下,Esri也凭借着更加完善产品体系,完成由软件向平台转变。

新的ArcGIS平台为用户打造“新一代WebGIS模式”,即一种以Web为中心的、全新的GIS应用模式,在这种模式中,资源和功能都进一步整合,GIS服务的提供者以Web的方式提供资源和功能,而用户则采用多种终端随时随地访问这些资源和功能。在这种模式下,GIS平台变得更加简单易用、开放和整合,使得GIS为组织机构所有人使用成为现实。

随着ArcGIS 10.4 平台的推出和诸多内容的升级,我们今天就主要从“矢量切片”方面来展示,为何我们将ArcGIS 10.4 称为新一代Web GIS的华丽升级。

一、矢量切片的概念

GIS的底图一直使用金字塔技术进行切图,使用户能够快速访问指定级别的地图或者影像。但是切图本身是一张图片,无法进行交互。于是又引入了矢量图层用来显示矢量点线面,这通常需要先获取矢量地理数据,然后通过前端将其绘制成不同元素便能通过鼠标进行响应交互了。

这种GIS组织方式在数据量比较小的时候并没有什么大问题,但是在数据量比较大时(例如全国的详细街区数据)存在以下几个问题。

  • 同一套数据的展示在不同的需求下可能需要不同的样式(例如,白天和夜间模式)而对于传统栅格切片对此需求必须重新进行切片;

  • 由于切片的分辨率固定,分辨率过高切片体积过大,分辨率过低高清屏无法清晰显示。

  • 矢量数据的请求如果是按需请求每次都向服务器请求数据加重服务器压力,如果一次请求按需展示,当矢量数据过大时(例如全国的水系数据)对于前端的压力过大。

现在,矢量切片利用一些新技术来控制动态的可交互的地图展示方式,新技术可以让个人在移动端或者浏览器端自定义地图样式。矢量切片底图可以将基础底图和工作数据进行融合,扩展了底图的交互性。人们可以动态的赋予基础底图样式以及通过配合可交互的工作数据来设计底图样式,根据内容进行智能制图和实时分析并展示在基础地图上。

矢量切片是一种利用协议缓冲(Protocol Buffers)技术的紧凑的二进制格式用来传递信息。当渲染地图时矢量切片使用一系列储存的内部数据进行制图。被组织到矢量切片的图层(比如道路、水、区域),每一层都有包含几何图形和可变属性的独立要素(例如姓名、类型等等)。通俗的说,就是将矢量数据以建立金字塔的方式,像栅格切片那样分割成一个一个描述性文件,以GeoJson格式或者以pbf等自定义格式组织,然后在前端根据显示需要按需请求不同的矢量瓦片数据进行Web绘图。

矢量切片有切片的优势——成熟的缓存、缩放比例技术,另外还有矢量数据能够快速的提供地图映射的优势。如下图所示传统金字塔方式进行切图时在并没有要素或者要素相同的区域依然需要进行多级切片,而矢量切片只需要设定不同要素显示的级别即可。

传统金字塔方式


矢量切片


二、矢量切片的优势
  • 切图快

  • 体积小

  • 传输快

  • 渲染速度快

  • 文字标注可与底部平行

  • 动态切换不同语言标注

二、ArcGIS的矢量切片方案

ArcGIS的矢量切片是使用一种自定义的新切片格式pbf来进行传递数据的。前端获取切片后通过解析样式来动态的渲染矢量切片并拼接成底图。

那么矢量切片在arcgis平台上是怎样生产并使用的呢,我们通过这个图来了解ArcGIS矢量切片的路线图,以及这个过程中都需要设计那些arcgis的产品。



技术路线图中所有涉及的产品绝大多数已经发布,例如生产切片的arcgis pro1.2 、发布切片用的portal for arcgis10.4。

矢量切片正逐步在ArcGIS的Web GIS平台上得到支持,目前JS API 3.15/4.0beta已经支持矢量切片的调用,ArcGIS Pro1.2增加了创建并可以发布到ArcGIS for Server10.4或者ArcGIS Online的功能,同时在ArcGISOnline上也提供了一套在线的基础矢量底图,可以通过修改样式文件对基础矢量底图样式进行自定义修改。

下一步矢量切片将会更加完善,并且在ArcGIS Runtimes以至于整个WebGIS平台上进行支持。Esri希望未来能够在使用栅格切片的地方都可以使用矢量切片。

这篇关于矢量切片——集美貌与才华于一身的底图方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/838815

相关文章

Java进行文件格式校验的方案详解

《Java进行文件格式校验的方案详解》这篇文章主要为大家详细介绍了Java中进行文件格式校验的相关方案,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、背景异常现象原因排查用户的无心之过二、解决方案Magandroidic Number判断主流检测库对比Tika的使用区分zip

IDEA中Git版本回退的两种实现方案

《IDEA中Git版本回退的两种实现方案》作为开发者,代码版本回退是日常高频操作,IntelliJIDEA集成了强大的Git工具链,但面对reset和revert两种核心回退方案,许多开发者仍存在选择... 目录一、版本回退前置知识二、Reset方案:整体改写历史1、IDEA图形化操作(推荐)1.1、查看提

Python实现html转png的完美方案介绍

《Python实现html转png的完美方案介绍》这篇文章主要为大家详细介绍了如何使用Python实现html转png功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 1.增强稳定性与错误处理建议使用三层异常捕获结构:try: with sync_playwright(

Java使用多线程处理未知任务数的方案介绍

《Java使用多线程处理未知任务数的方案介绍》这篇文章主要为大家详细介绍了Java如何使用多线程实现处理未知任务数,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 知道任务个数,你可以定义好线程数规则,生成线程数去跑代码说明:1.虚拟线程池:使用 Executors.newVir

MySQL中闪回功能的方案讨论及实现

《MySQL中闪回功能的方案讨论及实现》Oracle有一个闪回(flashback)功能,能够用户恢复误操作的数据,这篇文章主要来和大家讨论一下MySQL中支持闪回功能的方案,有需要的可以了解下... 目录1、 闪回的目标2、 无米无炊一3、 无米无炊二4、 演示5、小结oracle有一个闪回(flashb

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式

Java嵌套for循环优化方案分享

《Java嵌套for循环优化方案分享》介绍了Java中嵌套for循环的优化方法,包括减少循环次数、合并循环、使用更高效的数据结构、并行处理、预处理和缓存、算法优化、尽量减少对象创建以及本地变量优化,通... 目录Java 嵌套 for 循环优化方案1. 减少循环次数2. 合并循环3. 使用更高效的数据结构4

Vue中动态权限到按钮的完整实现方案详解

《Vue中动态权限到按钮的完整实现方案详解》这篇文章主要为大家详细介绍了Vue如何在现有方案的基础上加入对路由的增、删、改、查权限控制,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、数据库设计扩展1.1 修改路由表(routes)1.2 修改角色与路由权限表(role_routes)二、后端接口设计

Redis 多规则限流和防重复提交方案实现小结

《Redis多规则限流和防重复提交方案实现小结》本文主要介绍了Redis多规则限流和防重复提交方案实现小结,包括使用String结构和Zset结构来记录用户IP的访问次数,具有一定的参考价值,感兴趣... 目录一:使用 String 结构记录固定时间段内某用户 IP 访问某接口的次数二:使用 Zset 进行

解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)

《解读Redis秒杀优化方案(阻塞队列+基于Stream流的消息队列)》该文章介绍了使用Redis的阻塞队列和Stream流的消息队列来优化秒杀系统的方案,通过将秒杀流程拆分为两条流水线,使用Redi... 目录Redis秒杀优化方案(阻塞队列+Stream流的消息队列)什么是消息队列?消费者组的工作方式每