用于测试的软件版本:ArcGIS Pro2.5英文版 ArcGIS Enterprise10.7.1
数据来源:https://www.openstreetmap.org/ 截取下载中的一部分数据,以上海市为例
测试数据坐标系:3857
切片方案:自定义
目录
2.1、加快生成vtpk包的速度(测试速度仅针对本文中提到的数据,并非所有情况)
一、使用ArcGIS Pro生成矢量切片工作流
1、配图
矢量切片配图要求一个图层只加载一次,与ArcMap时代配图要求不同,详见链接
本文中配图样例:
2、定义切片方案
3、生成矢量切片索引面
4、生成矢量切片包或直接发布为矢量切片服务
步骤详见:http://zhihu.esrichina.com.cn/article/3871
5、如生成矢量切片包,上传或分享包
完整工作流
二、原理
1、生成矢量切片索引面的规则
从右到左,从上到下
2、生成矢量切片索引面的作用
注:个人见解
2.1、加快生成vtpk包的速度(测试速度仅针对本文中提到的数据,并非所有情况)
在Create Vector Tile Package这个工具中,Index Polygon是一个可选项,如果有Index Polygon,生成vtpk是1分8秒左右,如果没有Index Polygon,生成vtpk大约需要1分57秒左右
2.2、可以预先判断生成切片的密度,是否合理
从上面的图就能看出来,每个切片中含有的节点越少,要产生的切片就会越多
如果在ArcGIS Pro中打开Index Polygon,通过属性表,也可以了解到
LOD代表切片的层级,即根据默认的每个切片中包含1w个节点来看,总共需要切9级(0-8)
PTS代表每个切片中含有的节点个数(节点个数是将这一整个文档中所加载的所有图层,经过要素节点转点计算得出的)
2.3、修改生成切片的层级或包含的节点个数
如果想要实现上述目的,那么一定要生成Index Polygon,并将此Index Polygon在生成vtpk时作为参数填入,否则默认还是按照1w来的
那么问题来了,每个节点中包含节点数,应该设置为多少?生成的层级越多越好吗?
话不多说,先放几个对比动图
注:左边是每个切片中含有1W个节点的,右边是每个切片中含有1K个节点的,因为在代码中写的是一个view监视另外一个view的变化而变化,因此两个view在变化上有些许时间差
个人感觉,每个切片中含有1w个节点的,浏览起来也比较顺畅,每个切片中含有1k个节点的,没有比较明显的优势,因此我认为,如果不纠结于一定要将切片切到多少级,默认用1w就比较香,优点比较明显,生成切片速度快,体积小。
3、如何控制生成多少级切片
在栅格切片中,大家都比较熟悉下面这个图
这个图的意思是说,一共可生成0—23级,选择生成第8级到17级,其余的不生成,那么矢量切片时代?怎么做相同的控制呢?
因为发布矢量切片有两条路,假设切片方案里有0-23级
生成vtpk的方式:切片最终生成的层级由每个切片中包含节点数量控制,可通过Index Polygon里LOD最大属性看到
通过ArcGIS Pro直接发布:
上面的滑动条,是控制最终识别多少层级,而下面的index polygon 如果没有填,默认为10000 index polygon生成的切片,即规定了max lod和min lod
而如果index polygon代表的是能生成6级的面,上面的滑动条小于6级,比如0-3,那么最终切片层级为0-3级,