zoukankan      html  css  js  c++  java
  • 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字节

  • 相关阅读:
    输入/输出的格式和方法
    程序编译运行和exe运行之文件位置的区别
    ZOJ_3950_How Many Nines 解题报告及如何对程序进行测试修改
    [Offer收割]编程练习赛13 解题报告
    查找语言自带函数
    codeblocks下的汇编语言
    hiho一下 第144周(机会渺茫)解题报告及拓展
    关闭调试窗口快捷方式
    编写程序一个位置的快速到达和修改
    poj3660(Cow Contest)解题报告
  • 原文地址:https://www.cnblogs.com/janehlp/p/13695688.html
Copyright © 2011-2022 走看看