转自:http://lab.osgeo.cn/2449.html
Shapefile是ESRI提出的数据格式,随着ArcView GIS
3.x发布,属于简单要素类。Shapefile由于其数据结构简单,容易实现,得到了广泛的应用,在有段时间,几乎可以说是GIS数据格式的实际格式。当然,随着技术的发展,Shapefile的数据格式显得有些落后了,但它依然是目前应用最为广泛的数据格式。
Shapefile使用点、线、多边形存储要素的形状,具有简单、快速显示的优点;缺点是不能存储拓扑关系。一个shapefile是由若干个文件组成的,空间信息和属性信息分离存储,所以称之为“基于文件”的GIS数据格式。
每个shapefile,都至少有这三个文件组成,其中:
- *.shp文件,存储的是几何要素的的空间信息,也就是XY坐标;
- *.shx文件,存储的是有关*.shp存储的索引信息。它记录了在*.shp中,空间数据是如何存储的,XY坐标的输入点在哪里,有多少XY坐标对等信息;
- *.dbf文件,存储地理数据的属性信息的dBase表。
这三个文件是构成一个shapefile的基本文件,shapefile还可以有其他一些文件,但所有这些文件都与该shapefile同名,并且存储在同一路径下。
其它较为常见的文件:
- *.prj文件,如果shapefile定义了坐标系统,那么它的空间参考信息将会存储在*.prj文件中;
- *.shp.xml文件,这是对shapefile进行元数据浏览后生成的xml元数据文件;
- *.sbn文件和*.sbx文件,这两个存储的是shapefile的空间索引,它能加速空间数据的读取。这两个文件是在对数据进行操作、浏览或连接后才产生的,也可以在ArcGIS中通过ArcToolbox
>Data Management Tools >Indexes >Add spatial Index工具生成。
当使用ArcCatalog对shapefile进行创建、移动、删除或重命名等操作,或使用ArcMap对shapefile进行编辑时,ArcCatalog将自动维护数据的完整性,将Shapefile视为一个数据集。
虽然Shapefile无法存储拓扑关系,但它并不仅仅是普通用于显示的图形文件,作为地理数据,它自身是有拓扑的。比如一个多边形要素类,shapefile会按顺时针方向为它的所有顶点排序,然后按顶点顺序两两连接成的边线向量,在向量右侧的为多边形的内部,在向量左侧的是多边形的外部。
由于1990年代地理信息的迅速发展以及ArcView GIS
3.x软件在世界范围内的推广,shapefile格式的数据使用非常广泛,数据来源也较多。很多软件都提供了向shapefile转换的接口(如:MapInfo、MapGIS等)。ArcGIS支持对shapefile的编辑操作,也支持shapefile向第三代数据模型geodatabase的转换。