此部分尚未納入正式 3dTiles 規范,但是在 Cesium 中確實有實現源碼。
除了 b3dm、i3dm、pnts以及復合類型 cmpt,其實還有一種尚未納入規范的瓦片類型:二維矢量瓦片。
實際上,矢量瓦片已經有 MapBox 的實現了,但是 Cesium 並未兼容,需要自己寫 DataSource 加載。
二維矢量瓦片:Vctr
這部分還沒正式發布,不過在 1.66版本(至少在這個版本我找到過) Cesium 源代碼中是預先設置有這種類型的加載代碼的,App目錄也存在這種瓦片類型的 3dtiles。
我們可以拿來短暫的學習,並與MapBox提供的 矢量瓦片 對比。
① 文件頭部定義
這回頭部長達11個屬性:
| 屬性名 | 字節長 | 類別 | 說明 |
|---|---|---|---|
| magic | 4byte,下同 | char[4] | 標識符,字符串常量 "vctr" |
| version | / | uint32,下同 | 版本,未指定,應該是1 |
| byteLength | / | / | 瓦片文件大小 |
| featureTableJSONByteLength | / | / | 要素表JSON二進制字符串長 |
| featureTableBinaryByteLength | / | / | 要素表體二進制數據大小 |
| batchTableJSONByteLength | / | / | 批量表JSON二進制字符串長 |
| batchTableBinaryByteLength | / | / | 批量表體二進制數據大小 |
| polygonIndicesByteLength | / | / | 復合多邊形索引數據長度 |
| polygonPositionsByteLength | / | / | 復合多邊形坐標數據長度 |
| polylinePositionsByteLength | / | / | 復合折線坐標數據長度 |
| pointPositionsByteLength | / | / | 點坐標數據長度 |
② 猜測
要素表、批量表應該與之前的三種具體瓦片類似。
由於還未正式發布,暫緩此瓦片文件格式的詳細解析。
