用于測試的軟體版本:ArcGIS Pro2.5英文版 ArcGIS Enterprise10.7.1
資料來源:https://www.openstreetmap.org/ 截取下載下傳中的一部分資料,以上海市為例
測試資料坐标系:3857
切片方案:自定義
目錄
一、使用ArcGIS Pro生成矢量切片工作流
1、配圖
2、定義切片方案
3、生成矢量切片索引面
4、生成矢量切片包或直接釋出為矢量切片服務
5、如生成矢量切片包,上傳或分享包
二、原理
1、生成矢量切片索引面的規則
2、生成矢量切片索引面的作用
2.1、加快生成vtpk包的速度(測試速度僅針對本文中提到的資料,并非所有情況)
2.2、可以預先判斷生成切片的密度,是否合理
2.3、修改生成切片的層級或包含的節點個數
3、如何控制生成多少級切片
一、使用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、可以預先判斷生成切片的密度,是否合理
每個切片中含有1w個節點,預設值
每個切片中含有500個節點
從上面的圖就能看出來,每個切片中含有的節點越少,要産生的切片就會越多
如果在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級,