Shp数据结构解析及一种底层读取方法

Shp数据结构解析及一种底层读取方法陈明超刘朋飞*(天津师范大学地理与环境科学学院,天津300387)摘要:.shp数据是地理信息系统最常用的数据格式之一,具有数据结构紧凑、冗余度低等优点,在辅助决策、空间规划、可视化展示等方面有广泛的应用。本文基于此介绍了Shapefile矢量文件组成并详细解析了.shp数据存储点、线、面对象的存储结构,其次基于VisualStudio2019平台采用文件流的方式实现C#语言对shp数据的底层读取,最终取得了良好的效果。关键词:地理信息系统;矢量数据;数据结构;.NETAbstract:Shpdataisoneofthemostcommonlyuseddataformatsofgis,hastheadvantagesofcompactdatastructureandlowredundancy;ithaswidelyusedinassistingdecision-making^spatialplanning,visualdisplayandsoon.ThearticleintroducesthecompositionoftheShapefilevectorfileandanalyzesthestoragestructureofpoint,polyline,andpolygonindetail.Finally,takeadvantageofthefilestreamtorealizetheiow-levelreadingofshpdatabyC#languageandachievedgoodresults.Keywords:GIS;Vectordata;Datastructure;.NET中图分类号:TP274文献标识码:AShapefile文件是ESRI公司提出的用于描述空间数据的几何和属性特征的非拓扑实体矢量数据结构的一种格式气利用欧几里得几何学中的点、线、面、体来表示地理实体的一种数据组织方式。该文件格式已经成为GIS界的一个开放标准,同时也是一种重要的矢量数据交换格式。能很好的表达地理实体分布特征、数据精度高、冗余度低,在桌面版GIS应用程序和WebGIS中有广泛的应用。1Shapefile数据文件结构一个完整的Shapfile文件包含如下(如表1所示)几个子文件,常用的子文件包括,shx格式的儿何特征索引文件,,shp格式的几何文件,,dbf格式的属性文件2和.prj格式的投影文件。.shp文件为其中的主文件,本文的研究基于此展开。表1Shapefile文件子文件数据格式数据描述.dbf属性信息文件•P0投影信息文件.sbn.sbx空间索引文件.shp几何信息文件.xml元数据文件.shx几何索引文件.atx属性索引文件shp数据结构:Shp文件主要由文件头和信息记录两部分组成,文件头存文章编号:2096-4390(2020)21-0047-04储与文件基本特征相对应的数据,信息记录由多条子记录组成,每条记录表示相应的儿何实体信息。文件头总长度为100字节,分为基本识别信息和空间概况信息。基本识别信息包含八个int类型字段,总长度32字节。空间概况信息包含一个int类型字段和八个double类型字段,总长度68字节。具体字段信息如表2和表3所不。表2基本识别信息结构字段描述FileCodeint文件代码(9994)Unusedint预留字段Unusedint预留字段Unusedint预留字段Unusedint预留字段Unusedint预留字段FileLengthint文件长度FileXfersionint文件版本(1000)其中最大最小X,Y坐标值构成了最小外接矩形(MER),Z坐标为非必要字段。读取时按照起始位置依次读取,如读取FileCode字段从第零位开始,读Unused字段从第四位开始读。信息记录部分由多个子记录组成,没有固定的长度,最终长度取决于子记录的个数和每个子记录的长度。每个子记录由记录头信息和空间信息记录组成,记录头信息包含记录号和记录基金项目:国家自然科学基金项目(41571387),天津市自然科学基金项目(18JCYBJC90600),科技基础资源调查专项(No.2019FY202501)o作者简介:陈明超(1996,8-),男,硕士研究生,研究方向:网络地理信息。刘朋飞,男,讲师。主要研究方向为网络地理信息系统C*通讯作者:刘朋飞表3空间概况信息字段信息结构表4空间实体类型字段类型Shapelypeint空间数据类型XMndouble最小X坐标YMindouble最小Y坐标XMaxdouble最大X坐标YMaxdouble最大Y坐标ZMindouble最小Z坐标ZMaxd(xible最大Z坐标MMindouble最小测量值MMaxdouble最大测量值长度,均为int型,总长度为八字节。空间记录信息包含数据类型和坐标对信息,具体结构如图1所示。记录头空叵信息记录实体类型代码描述Nullshape0空Point1占八、、PolyUne3折线Polygon5多边形MultiPoint8多点PointZ11三维点PolyLineZ13三维线PolygaiZ15三维面MultiPointZ18三维点集PointM21M值点PolyLineM23M值线PolygaiM25M值多边形MultiPoi...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

文秘专家
机构认证
内容提供者

1

确认删除?