qtree文件結構解析(二)


by 蔡建良 2020-9-19

四叉樹(QuadTree,q-tree,q-樹)-現有瓦片的一組引用

名稱:q2-xxx-q.yyy

q2 -服務數據,解密和解壓縮后可用
xxx-是瓦片的數字名稱
q - q-tree
yyy-qtree版本

示例:q2-020310311303103-q.306

q樹為歷史模式(新一代樹)

名稱:qp-xxx-q.yyy

qp-服務數據,解密和解壓縮后可用
xxx-是瓦片的數字名稱
q - q-tree
yyy-qtree版本

示例:qp-020022323230230-q.37

 

 有關四叉樹數據包的一些說明:

  根四叉樹數據包q2-0將包含四個級別:
       “” 10”-“ 3400”-“ 3316000”-“ 33364

  每個其他的四叉樹數據包(即q2-0301)將包含五個級別,
  但第一層是這棵本地樹的根,
  條目未定義,因為它與先前的四叉樹數據包重疊
       “” 1(未定義!)
      “ 0”-“ 3400”-“ 3316000”-“ 333640000”-“ 3333256

  例如,四叉樹數據包q2-0301將不提供任何詳細信息
  對於blist 301,因為它包含在q2-0中。 但是它將提供
  blist 301030113012,...,3013333的詳細信息。

 

下載影像第0層qtree文件: http://kh.google.com/flatfile?q2-0-q.888

下載完成后是二進制文件,用密鑰解密,解密后是zlib格式的壓縮數據,解壓后才是真實的qtree數據。

Quadtreepacket.cpp文件包含qtree結構。

文件頭部32個字節:
buf << magic_id 4字節 值=32301
<< data_type_id 4字節 值=1
<< version 4字節 值=2
<< num_instances 4字節 結點個數
<< data_instance_size 4字節 節點大小=32個字節
<< data_buffer_offset 4字節
<< databuffersize 4字節
<< meta_buffer_size; 4字節

qtree節點部分:每個節點占用32個字節
buf<<children 1字節 位段(bitfield)用於識別節點圖像類型
<<kByteFiller 1字節 占位
<<cnode_version 2字節 節點版本
<<image_version 2字節 影像版本
<<terrain_version 2字節 地形版本
<<num_channels 2字節
<<kWordFiller 2字節 占位
<<type_offset 4字節
<<version_offset 4字節
<<image_neighbors 8字節
<<image_data_provider 1字節
<<terrain_data_provider 1字節
<< kWordFiller 2字節

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM