shapefile是一种用于存储地理要素的几何位置和属性信息的非拓扑简单格式,可以用于表达点、线、面、多点、多线、多面等地理要素格式,并不存储拓扑数据。它是Esri公司开发出的用于实现SFS简单要素模型的一种文件格式。

尽管它的名字看起来仅表示一个文件,但实际上,一个shapefile至少包含三个基础文件: .shp、.dbf和.shx 。为了使它们联系彼此,它们的名字必须相同,必须在同一文件夹里出现。

1 .shp文件

用于存储要素空间位置信息,其中每个记录用其顶点列表描述一个形状;

该主文件具有100bytes的固定长度头文件,含有17个字段,共100个字节,其中包含九个4字节(32位有符号整数,int32)整数字段,紧接着是八个8字节(双精度浮点数)有符号浮点数字段:

Bytes Type Endianness Usage
0–3 int32 big File code (always hex value 0x0000270a)
4–23 int32 big Unused; five uint32
24–27 int32 big File length (in 16-bit words, including the header)
28–31 int32 little Version
32–35 int32 little Shape type (see reference below)
36–67 double little Minimum bounding rectangle (MBR) of all shapes contained within the dataset; four doubles in the following order: min X, min Y, max X, max Y
68–83 double little Range of Z; two doubles in the following order: min Z, max Z
84–99 double little Range of M; two doubles in the following order: min M, max M

然后该文件包含任意数量的可变长度记录。每条记录都有一个8字节的记录头:

Bytes Type Endianness Usage
0–3 int32 big Record number (1-based)
4–7 int32 big Record length (in 16-bit words)

接下来是存储的实际数据:

Bytes Type Endianness Usage
0–3 int32 little Shape type (see reference below)
4– Shape content

长度可变的记录内容取决于形状类型,形状类型必须是文件头中给定的形状类型或Null。以下是可能的形状类型:

Value Shape type Fields
0 Null shape None
1 Point X, Y
3 Polyline MBR, Number of parts, Number of points, Parts, Points
5 Polygon MBR, Number of parts, Number of points, Parts, Points
8 MultiPoint MBR, Number of points, Points
11 PointZ X, Y, Z Optional: M
13 PolylineZ Mandatory: MBR, Number of parts, Number of points, Parts, Points, Z range, Z array Optional: M range, M array
15 PolygonZ Mandatory: MBR, Number of parts, Number of points, Parts, Points, Z range, Z array Optional: M range, M array
18 MultiPointZ Mandatory: MBR, Number of points, Points, Z range, Z array Optional: M range, M array
21 PointM X, Y, M
23 PolylineM Mandatory: MBR, Number of parts, Number of points, Parts, Points Optional: M range, M array
25 PolygonM Mandatory: MBR, Number of parts, Number of points, Parts, Points Optional: M range, M array
28 MultiPointM Mandatory: MBR, Number of points, Points Optional Fields: M range, M array
31 MultiPatch Mandatory: MBR, Number of parts, Number of points, Parts, Part types, Points, Z range, Z array Optional: M range, M array

2 .dbf文件

用于存储要素的非空间属性信息,其中每个地理要素使用一个记录,属性和位置信息通过记录号一对一对应,所以 .dbf 文件和 .shp 文件的记录顺序必须相同

3 .shx文件

存储索引信息,文件中每个记录包含对应的 .shp 文件记录距离 .shp 文件的初始位置的偏移量。
索引文件首先包含与 .shp 文件相同的100字节头,后跟任意数量的8字节定长记录,由以下两个字段组成:

Bytes Type Endianness Usage
0–3 int32 big Record offset (in 16-bit words)
4–7 int32 big Record length (in 16-bit words)

它记录每一个几何体在 .shp 文件之中的位置ID,从而能够加快向前或向后搜索一个几何体的效率。

*最后值得一提的是在一个shapefile中只能定义一种集合类型。

shapefile文件格式说明相关推荐

  1. Shapefile文件读取-文件头

    1 介绍 在Shapefile文件格式介绍一文中我们介绍了shapefile文件的结构组成,本文主要介绍如何读取shapefile文件头部分,使用的语言是c++. 2 文件头结构 Shapefile文 ...

  2. java gis 矢量数据结构_地理信息系统矢量数据结构.ppt

    地理信息系统矢量数据结构 * Shapefile技术描述 :/library/whitepapers/pdfs/shapefile.pdf Shapefile文件格式分析 收藏 Shapefile文件 ...

  3. Android高德地图加载WMS服务应用实践

    效果图(灰色两块为自定义瓦片): 需求:在Android高德地图上需要加载wms服务,用于显示自己绘制的瓦片地图. 由于需要在指定的位置添加一小块瓦片地图,所以在制作瓦片地图时需要参照高德地图底图作为 ...

  4. 利用Multigen Creator构建地形三维模型(CAD地形图--三维模型)

    (以前做过地形建模方面的经验分享给大家,是从我研一交的一篇当做期末作业的文章中节选的,初始数据为1:2000cad地形图,文中主要介绍从等高线到地形模型的几个关键步骤) 3  基于Creator的地形 ...

  5. 【典型案例】RapidEye Mosaics影像管理模式

    RapidEye卫星星座为德国所有的商用卫星,2008年8月29日,RapidEye 5颗对地观测卫星已成功发射升空,目前运行状况良好. RapidEye与Esri合作建成RapidEye Mosai ...

  6. ArcMap:第一届全国大学生GIS应用技能大赛(滁州学院)详解-上午题

    目录 01 上午题 1.1 题目 1.2  数据 1.2.1  如何添加比赛数据? 1.2.2  比赛数据展示 1.3 思路 1.3.1 坐标系问题 1.4 实操 1.4.1 建立空间数据库和比赛数据 ...

  7. GeoTools——读取shapefile数据

    目录 一.引言 二.代码操作 1.服务端 2.返回数据 3.客户端 三.总结 一.引言 GeoTools在开源gis世界中使用极为常见,地位类比于arcgis中的arcgis engine,当我们要使 ...

  8. Shape 文件格式解释

    ESRI Shapefile(shp)是Esri公司开发的空间数据开放格式. 该文件格式已经成为了地理信息软件界的一个开放标准,成为一个非常重要的交换数据格式,基本上所有的GIS软件都支持Shapef ...

  9. GeoServer学习笔记-2、基本使用(发布shapefile文件)

    一.shapefile文件 ESRI Shapefile(shp),或简称shapefile,是美国环境系统研究所公司(ESRI)开发的一种空间数据开放格式,用于描述几何体对象:点,折线与多边形,仅仅 ...

  10. 打开Shapefile文件的正确方式

    打开Shapefile文件的正确方式 作者:阿振 邮箱:tanzhenyugis@163.com 博客:https://blog.csdn.net/theonegis/article/details/ ...

最新文章

  1. call(),apply()和bind()的详解使用:
  2. SpringFlux入门(上篇)
  3. 百练OJ:2767:简单密码
  4. Jquery的动态创建DOM元素
  5. 【C++ Primer】 神秘的 sizeof(union) 、sizeof(struct) 和内存对齐技术
  6. HDU 4946 Area of Mushroom 凸包 第八次多校
  7. MFC窗口最小化到托盘
  8. Win7允许/禁用 PING命令
  9. php中几个数组函数array_slice() array_filter array_unique() in_array()
  10. java class类
  11. atheros ar9285 wireless network Adaper设备的驱动器正防止机器进入待机状态
  12. AttributeError: module ‘win32com.gen_py.00020905-0000-0000-C000-000000000046x0x8x7‘ has no attribute
  13. 我的世界服务器总是显示错误,win 10 进mc服务器总是错误 怎么办
  14. c#怎么设置winform中dgv的表头边框线
  15. 关于移动硬盘插入后无显示的问题
  16. Hive通过-f调用sql文件并进行传参
  17. intel rst linux 驱动下载,下载:Intel RST存储驱动10.1.2.1004
  18. python bind绑定失败_Python tkinter之Bind(绑定事件)的使用示例
  19. mapUnderscoreToCamelCase作用- 开启驼峰
  20. JDK8 下载与安装教程,超简单版(Windows)

热门文章

  1. x射线微型计算机断层扫描技术,X射线断层扫描技术,分析缺陷对性能影响的利器...
  2. SPSS的双变量相关分析
  3. 51job导出的简历是php,前程无忧简历导出
  4. HTML常见标签及个人简历制作
  5. c语言 控制电脑程序,c语言程序设计
  6. Autoencoder理解(2): 自动编码器的作用之稀疏编码
  7. 工作量证明生态的现状与运行原理
  8. Linux防火墙iptables学习笔记
  9. 10款视频转码软件的H264低码率高画质转码评测
  10. 这些免费版音视频格式转换器哪个最好用