现在需要用VC开发一软件,实现将一组坐标数据保存成shape文件。通过shape浏览软件可以正常打开浏览。shape文件由ESRI开发,一个shape文件有一组文件组成,其中必要的基本文件包括一个主文件.shp,一个索引文件.shx,和属性文件.dbf。
方法/步骤
1
到官方网站下载Shapelib 源码,shape是代码公开的,放心下载。
2
下载到的源码如下
3
VS2005 创建空项目,添加相关文件,这里添加的文件都在下载的库文件源码中。
4
编译工程,正常情况下不会有错误,除非你加载错了文件。编译结果。
5
到release 目录中查看生成的shapelib.lib
6
现在用VS2005创建一个测试工程,用来生成.shp 文件。工程中添加的是三个文件 shapefil.h shptest.c 都在库文件源码中Shapelib.lib就是上面我们生成的。
7
为了调试方便,我们把shptest.c文件做一下修改将生成写SHP文件的两个函数直接提到最前面。两个写函数中把坐标一个一个插入到.SHP文件中。这两个写函数也是库文件中自带的。
8
现在运行程序,由于是控制台程序,有没有在CMD中运行,程序一闪而过,但是语句都执行过了
9
到工程目录下找生成的文件,我们看到代码中创建的test1.shp test7.shp都已经生成了。
10
使用ShapeExplorer软件打开生成的.shp文件。提示如下错误。
11
分析原因,SHP 文件应给有三个相关文件坐标文件 .shp)、索引文件 .shx 和属性文件 .dbf ,现在工程里没有生成.dbf文件。 修改一下源码,生成.dbf文件。Test_WriteDBF是自己写的函数,可以参考dbfcreate.c文件编写。
12
重新编译,生成相关.dbf文件
13
使用ShapeExplorer打开test1.shp ,显示出两个点。
14
再继续打开test7.shp.显示出两个矩形。