gdal中的ogr配置

Posted: June 27th, 2010 | Author: laomi | Filed under: 开发日志 | Tags: , , | No Comments »

最近在写一个spatial association rule的代码,选择的语言是用c/c++来编写,由于这个算法中需要用到空间关系计算这一块,所以需要选用一个能够计算空间关系的库来完成这一部分工作(既然已经有了现成的工具,没有必要自己再去开发一个了),在这里我们选择的是gdal中的ogr

The OGR Simple Features Library is a C++ open source library (and commandline tools) providing read (and sometimes write) access to a variety of vector file formats including ESRI Shapefiles, S-57, SDTS, PostGIS, Oracle Spatial, and Mapinfo mid/mif and TAB formats.
OGR is a part of the GDAL library.

通过官方网站上的介绍我们可以知道ogr的主要作用是一个对矢量数据的解析和操作的库,然后我再根据我们的需求(解析shapefile以及求出shapefile中的geometry中的空间关系,例如:距离关系、拓扑关系等),我们知道了它能够很好的满足我们的需求,说到这我当时觉得这已经不是什么很困难的问题了,所以自己就准备开始做了。

自己以前也没有用过c/c++写过什么程序,基本上也就是一些简单的数据结构和算法,发现自己对于如何将这个库引用到工程文件中来也是没有什么办法,自己甚至土鳖的将这些源码直接拷到工程文件中去编译,当时也是报了很多的错误。幸好在这个信息时代有Google(百度对于技术类的文章搜索还是没有google那么的强大,起码从我的经验来看是这样的),自己从网上也搜集了一些资料,这里总结具体的编译步骤如下:

由于我们需要空间关系的运算,所以我们需要将geos下载下来,因为在编译gdal的时候它会需要geos的库:

首先需要设定编辑环境,这里我们用的是vs2008,所以设置如下:

D:\Program Files\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat 拖至控制台用进行运行,这样的话,将系统的c++编辑环境设置为vc的编辑环境

编译geos:

1、GEOS 网站下载最新版本geos-3.1.1.tar.bz2 ,同时svn登录http://svn.osgeo.org/geos/trunk,下载geos-svn 版本,
2、解压缩geos-3.1.1.tar.bz2 ,从svn版本中复制nmake.opt,autogen.bat
3、If you use Microsoft Visual C++ (7.1 or later) compiler, you can build GEOS using NMAKE program and provided makefile.vc files:

autogen.bat
nmake /f makefile.vc MSVC_VER=1400

编译gdal

1 修改nmake.opt:
指定目标安装目录GDAL_HOME ,Uncomment for GEOS support
2 nmake /f makefile.vc
3 nmake /f makefile.vc install       执行完之后,生成了bin和data文件夹
4 nmake /f makefile.vc devinstall 执行完之后,生成了include和lib文件夹

在用vs2008建立gdal ogr的工程环境时,只需要将gdal_i.lib文件和headfile引入到工程文件中,然后将gdal.dll文件拷贝到debug目录下,以便于在程序运行时链接。

gdal_i.lib文件的配置在工具–>选项–>项目和解决方案–>c++目录中进行设置,然后为了不用再程序中动态的去调用它,直接使用所以设置  项目–>属性–>配置属性–>链接器–>输入–>项目依赖 中加入gdal_i.lib。

将这些环境都设置完之后,最后需要做的工作就是写一个demo程序测试一下ogr的程序,相关的程序测试直接使用http://www.gdal.org/ogr/ogr_apitut.html 中的sample就能完成。

Share and Enjoy:
  • Sphinn
  • Mixx
  • Google Bookmarks
  • Twitter
  • del.icio.us
  • Digg
  • Diigo
  • MSN Reporter
  • Yahoo! Buzz


Leave a Reply

  • Powered by WP Hashcash