Shp文件的学习

本文转载自:半支烟阿杰 http://blog.csnd.net/gisfarmer
做GIS开发的朋友可能对shp并不陌生,但是看到CSDN网友不断提问关于shp文件的一些问题,利用闲暇我对shp文件的一些知识加以总结,共享CSDN网友。

  1. 首先了解一下shp文件的一些简单知识

Shapefile文件是美国环境系统研究所(ESRI)所研制的GIS文件系统格式文件,是工业标准的矢量数据文件。 Shapefile将空间特征表中的非拓扑几何对象和属性信息存储在数据集中,特征表中的几何对象存为以坐标点集表示的图形文件—SHP文件,Shapefile文件并不含拓扑(Topological)数据结构。一个Shape文件包括三个文件:一个主文件(.shp),一个索引文件(.shx),和一个dBASE(*.dbf)表。主文件是一个直接存取,变长度记录的文件,其中每个记录描述构成一个地理特征(Feature)的所有vertices坐标值。在索引文件中,每条记录包含对应主文件记录距离主文件头开始的偏移量,dBASE表包含SHP文件中每一个Feature的特征属性,表中几何记录和属性数据之间的一一对应关系是基于记录数目的ID。在dBASE文件中的属性记录必须和主文件中的记录顺序是相同的。图形数据和属性数据通过索引号建立一一对应的关系。

  1. Shapefile中坐标文件(.shp)

由固定长度的文件头和接着的变长度空间数据记录组成。文件头由100字节的说明信息组成的,主要说明文件的长度、Shape类型、整个Shape图层的范围等等,这些信息构成了空间数据的元数据。在导入空间数据时首先要读入文件头获取Shape文件的基本信息,并以此信息为基础建立相应的元数据表。而变长度空间数据记录是由固定长度的记录头和变长度记录内容组成,其记录结构基本类似,每条记录都有记录头和记录内容组成(空间坐标对)。记录头的内容包括记录号(Record Number)和坐标记录长度(Content Length)两个记录项,Shapefile文件中的记录号都是从1开始的,坐标记录长度是按16位字来衡量的。记录内容包括目标的几何类型(ShapeType)和具体的坐标记录(X,Y),记录内容因要素几何类型的不同,其具体的内容和格式都有所不同。对于具体的记录主要包括空Shape记录,点记录,线记录和多边形记录。

  1. 属性文件(.dbf)

用于记录属性信息。它是一个标准的DBF文件,也是由头文件和实体信息两部分构成。其中文件头部分的长度是不定长的,它主要对DBF文件作了一些总体说明,其中最主要的是对这个DBF文件的记录项的信息进行了详细的描述,比如对每个记录项的名称,数据类型,长度等信息都有具体的说明。属性文件的实体信息部分就是一条条属性记录,每条记录都是由若干个记录项构成,因此只要依次循环读取每条记录就可以了。

  1. 索引文件(.shx)

主要包含坐标文件的索引信息,文件中每个记录包含对应的坐标文件记录距离坐标文件的文件头的偏移量。通过索引文件可以很方便地在坐标文件中定位到指定目标地坐标信息。索引文件也是由文件头和实体信息两部分构成的,其中文件头部分是一个长度固定(100 bytes)的记录段,其内容与坐标文件的文件头基本一致。它的实体信息以记录为基本单位,每一条记录包括偏移量(Offset)和记录段长度(Content Length)两个记录项。
————————————————
版权声明:本文为CSDN博主「优途科技」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/gisfarmer/article/details/3861554

Shp文件的必学知识点相关推荐

  1. [新手必备]Python 基础入门必学知识点笔记

    Python 作为近几年越来越流行的语言,吸引了大量的学员开始学习,为了方便新手小白在学习过程中,更加快捷方便的查漏补缺.根据网上各种乱七八糟的资料以及实验楼的 Python 基础内容整理了一份极度适 ...

  2. 大专的我是如何学Java的,这里列出了必学知识点,以及内部资料免费领取

    基础很重要,基础不牢,山崩地裂,建议大家还是稳扎稳打,这样才可以走的更长更远. 还有就是一定要有一个自己的规划和方向,然后朝着目标一步一步地学习奋斗,只要坚持,总会有回报的. 希望大家能看完,看完这篇 ...

  3. 终于有人把安卓程序员必学知识点全整理出来了,BAT大厂面试总结

    行业激烈变化时,恰恰是机会最多的时候 坦白讲,许多人骨子里害怕变化和竞争. 其实大可不必. 一来,怕也没用嘛.二来,变化越快,组合要素增加了,意味着新的工作机会越多. 就像传统媒体VS新媒体. 放在1 ...

  4. 八个Python常用函数,非常好用,初学者必学知识点!

    Python给我们内置了大量功能函数,官方文档上列出了69个,有些是我们是平时开发中经常遇到的,也有一些函数很少被用到,这里列举被开发者使用最频繁的8个函数以及他们的详细用法 print print函 ...

  5. c语言 怎么访问64位地址_大神用10000字总结了嵌入式C语言必学知识点……

    导读:怎么做好嵌入式?相信这个问题无论问谁你都会得到一句学好C语言!今天推荐一篇大佬写的嵌入式C语言知识点总结,非常值得一读. 从语法上来说C语言并不复杂, 但编写优质可靠的嵌入式C程序并非易事,不仅 ...

  6. 安卓开发入门教程!终于有人把安卓程序员必学知识点全整理出来了,附答案

    如何提升学习? 提升学习很大程度上就是为了跳槽涨薪,当然运气不好的情况可能是被劝退重新找工作,无论是哪种情况,自主学习的能力是要有的,而且得有一个方向,得有重点. 对于Android移动开发来说,热修 ...

  7. ACM必学知识点清单

    来源:https://blog.csdn.net/xuanandting/article/details/52160859 训练过ACM等程序设计竞赛的人在算法上有较大的优势,这就说明当你编程能力提高 ...

  8. 大神用10000字总结了嵌入式C语言必学知识点……

    导读:怎么做好嵌入式?相信这个问题无论问谁你都会得到一句学好C语言!今天推荐一篇大佬写的嵌入式C语言知识点总结,非常值得一读. 从语法上来说C语言并不复杂, 但编写优质可靠的嵌入式C程序并非易事,不仅 ...

  9. 学习C++ 丨 类(Classes)的定义与实现!C/C++必学知识点!

    一."类" 的介绍 在C++中, 用 "类" 来描述 "对象", 所谓的"对象"是指现实世界中的一切事物.那么类就可以看 ...

最新文章

  1. 【每日一算法】两数相加
  2. ThreadLocal 原理 以及设计思想
  3. HDU5863 cjj's string game(DP + 矩阵快速幂)
  4. win10 VS2010 VS studio 生成程序默认管理员运行 此任务要求应用程序具有提升的权限
  5. 用计算机写文章 单元备课,信息技术第一单元单元备课精要.doc
  6. 【Python】:用python做下百度2014笔试题
  7. git可视化工具—GitKraken
  8. 在Windows上安装FFmpeg程序
  9. Windows安装和设置教程
  10. Android 10.0 关机界面全屏显示(UI全屏显示)
  11. 中科院计算机软件所导师,中国科学院软件研究所硕士生导师刘立祥
  12. 开放式运动耳机排行榜,排行靠前的五款高性能耳机分享
  13. HTTP权威指南与图解HTTP读书笔记
  14. 信管师培训之第十一节课作业(法律法规+标准规范+职业道德)
  15. android 仿微信朋友圈发布动态功能
  16. iOS 一个错误 Unable to find a specification for
  17. 四年级计算机使用登记表,小学音乐器材使用登记表.doc
  18. 教你如何升级app适配iOS 7
  19. c++ web 框架 ---ricky.chu
  20. 到了2020年,年薪80w的阿里P7专家,顶尖的技术人才只因做到了这几点

热门文章

  1. 酒店管理系统(Servlet+JSP)
  2. 埃森哲中国企业数字转型指数 附下载
  3. python 最小值算法_机器学习:Python实现最小均方算法(lms)
  4. Java11新特性(二)——JDK11绿色免安装版环境变量配置教程
  5. c++ 读入一个字符
  6. Macos 安装Clang和LLVM过程记录
  7. selenium无头浏览爬取搜狐新闻
  8. 【浪漫气球——HTML CSS JS (特效+代码)】
  9. Python学习笔记 - 探索33个保留关键字
  10. Leetcode一起攻克搜索(BFS,DFS,回溯,并查集)