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將包含四個級別: “” 1 “ 0”-“ 3” 4 “ 00”-“ 33” 16 “ 000”-“ 333” 64 每個其他的四叉樹數據包(即q2-0301)將包含五個級別, 但第一層是這棵本地樹的根, 條目未定義,因為它與先前的四叉樹數據包重疊 “” 1(未定義!) “ 0”-“ 3” 4 “ 00”-“ 33” 16 “ 000”-“ 333” 64 “ 0000”-“ 3333” 256 例如,四叉樹數據包q2-0301將不提供任何詳細信息 對於blist 301,因為它包含在q2-0中。 但是它將提供 blist 3010、3011、3012,...,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字節