Shp文件格式之-dbf文件

简介: GeoTools中处理Dbf文件、Dbf头信息组成、Dbf数据组装形式

DBF文件格式

1. GeoTools DBF文件头计算

DBF头文件分为两个部分。第1部分占10个字节,保存文件标识、时间、数据量和DBF文件头字节长度;第2部分为变长长度,描述了每行数据长度、字段名、字段类型、列号和其它。

第一部分:

dbf_1

第一部分占用10个字节:

  • 0 字节为值为3,标识位,固定值
  • 1~3分别标识年月日

    • if y > 90 y = y+1990 else y = y+2000
    • M = M -1
    • d = d
  • 4~7 标识dbf文件存储了多少条数据, int recordCnt =[7][6][5][4]
  • 8~9 标识头长度 int headerLength =[8] & 255 | ([9] & 255) << 8
第二部分:

dbf_2

第二部分的长度依据文件字段数,根据第一部分的内容可计算:

  • 数据长度(2B)int recordLength = [0] & 255 | ([1] & 255) << 8
  • 空位(20B),用0填充
  • 字段描述,每个(32B)*n

    • 字段名(11B)
    • 类型(1B)
    • 列号(1B),标识该字段在第几列
    • 长度(1B) , 此位转化为int,小于0则+256, 大于0不变
    • 精度(1B)
    • 空位(14B),用0填充
  • 尾部空位(1B),用0填充

2. dbf数据组成

dbf_

DBF文件中的数据组成比较简单,每一行数据由值为32的1个字节开始,后面数据依赖每列数据的类型决定。

类型标识
@ Timestamp.class
A B E G H I J K M String.class
C String.class
D Date.class
F Double.class
L Boolean.class
N 小数点后位数 != 0 Double.class
N 小数点后位数 == 0 && 长度 < 10 Integer.class
N 小数点后位数 == 0 && 长度 > 10 Long.class
相关文章
cesium添加实体不被地形遮挡的参数设置
disableDepthTestDistance:指定从相机到禁用深度测试的距离,关于深度测试我们将在后面的文章中介绍到,由于深度测试的存在,我们的对象很多时候会被地形挡住,如下:
2952 0
cesium添加实体不被地形遮挡的参数设置
|
定位技术
干货!解决Cesium中Entity移动漂移的问题
案例场景:在Cesium开发三维场景展示中,肯定会碰到加载Entity的需求,如果在你的gis应用中,带了地形的展示。那么在旋转切换画面时,Entity是否跟着一起动了起来,感觉像漂移一样呢?
4337 0
干货!解决Cesium中Entity移动漂移的问题
|
数据挖掘 C++
QT基础入门——项目案例(七)
QT基础入门——项目案例(七)
798 0
QT基础入门——项目案例(七)
|
10月前
|
关系型数据库 分布式数据库 PolarDB
PolarDB 开源基础教程系列 7.2 应用实践之 跨境电商场景
本文介绍了如何在跨境电商场景中快速判断商标或品牌侵权,避免因侵权带来的法律纠纷。通过创建品牌表并使用PostgreSQL的pg_trgm插件和GIN索引,实现了高性能的字符串相似匹配功能。与传统方法相比,PolarDB|PostgreSQL的方法不仅提升了上万倍的查询速度,还解决了传统方法难以处理的相似问题检索。具体实现步骤包括创建品牌表、插入随机品牌名、配置pg_trgm插件及索引,并设置相似度阈值进行高效查询。此外,文章还探讨了字符串相似度计算的原理及应用场景,提供了进一步优化和扩展的方向。
294 11
|
消息中间件 网络协议 RocketMQ
消息队列 MQ产品使用合集之broker开启proxy,启动之后producer生产消息始终都只到一个broker,该怎么办
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
移动开发 小程序 JavaScript
开源的微信小程序框架
【8月更文挑战第22天】开源的微信小程序框架
876 65
|
JSON 数据格式
.net core 读取配置文件的几种方式
# 一、Json配置文件 ## 1、这里的配置文件指的是下图 ![请在此添加图片描述](https://developer-private-1258344699.cos.ap-guangzhou.myqcloud.com/column/article/5877188/20231031-c79281ce.png?x-cos-security-token=Agam0Cn5pDWzx5RjFFzmFp5SXifE2lwa11a1f9dbaeac346ddc3b179889543979Cq1MFNxd9AGUyz-E0xgqW-YuUxnToKOaIzGnWLMcgCmVO4YvDOI5Os41fWu
366 0
.net core 读取配置文件的几种方式
|
存储 安全 5G
让你的相册变成私有云!Synology Photos 的公网访问功能指南
让你的相册变成私有云!Synology Photos 的公网访问功能指南
|
缓存 Java 开发者
一文详解Spring Bean循环依赖
本文主要梳理了Spring解决bean循环依赖的思路。
43935 31