ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:814.99KB ,
资源ID:6842353      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6842353.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(GDAL库安装.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

GDAL库安装.docx

1、GDAL库安装简单介绍:OGR是一个读取和处理GSI矢量数据的库。这个库可以读取和处理多种流行的矢量数据,OGR是GDAL(http:/www.gdal.org/)的一个部分,只要你安装了GDAL库,就已经拥有了OGR库。一、安装: 1.先下载一个GDAL版本(C+) (http:/trac.osgeo.org/gdal/wiki/BuildHints)。 2.然后打开控制(DOS)台,找到.Microsoft Visual Studio .NET 2010Vcbinvcvars32.bat,注册VC编译环境。 进入VS安装目录执行VS目录下的 VCVARS32 文件 3.然后把GDAL库放到

2、一个目录下,如C:gdal-1.9.1gdal-1.9.1;用VS打开并打开文件夹下的nmake.opt修改GDAL_HOME = C:GDAL把路径改到需要把gdal安装的地方。cd进入刚才源文件的解压目录C:gdal-1.9.1gdal-1.9.1。将gdal解压到C盘修改nmakecd进入解压目录4.然后在DOS中依次输入: nmake /f makefile.vc nmake /f makefile.vc install nmake /f makefile.vc devinstall 中间等待编译处理。处理完后系统将会把我们需要的文件拷贝到开始设定的安装目录,如刚才设置的C:GDAL

3、二、应用1. 在新建项目下: 属性-C/C+-常规-附加包含目录:C:GADLinclude。 属性-链接器-常规-附加库目录:C:GADLlib. 属性-连接器-输入-附加依赖项:gdal_i.lib. 2. 将C:GDALbingdal14.dll拷贝到vs新建项目的debug文件夹中。(否则运行时会提示找不到gdal14.dll) 添加所需的头文件就可以用了。 OGR参考(http:/www.gdal.org/ogr/index.html)三、实例下面附上一个一个GDAL的读写数据例子引自 /#include stdafx.h#include fangshibo.h#include #i

4、nclude/gdal头文件#include .includegdal.h#include .includegdal_priv.h#include .includeogr_srs_api.h#include .includecpl_string.h#include .includecpl_conv.h#pragma comment (lib,.libgdal_i.lib)/#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ The one and only applic

5、ation objectCWinApp theApp;using namespace std;/void MaxNDVI(vector files,CString maxNDVfile) / GDALAllRegister(); vector datasets; /打开文件 for(int i=0;ifiles.size();i+) CString filename=filesi; GDALDataset *tmpDataset = (GDALDataset *) GDALOpen( filesi,GA_ReadOnly); if(tmpDataset!=NULL) datasets.push

6、_back(tmpDataset); else fprintf( stderr, GDALOpen failed - %dn%sn, CPLGetLastErrorNo(),CPLGetLastErrorMsg() ); tmpDataset=NULL;/以后再释放 /读取数据咯,按行来读取 /GDALDir if(datasets.size()=0)return; GDALDataset *tmpDataset=datasets0; if(tmpDataset!=NULL) GDALDriver * driver=NULL; int index = maxNDVfile.ReverseFin

7、d(.); if (index GetDriverByName(BMP); else if (suffix = jpg) driver = GetGDALDriverManager()-GetDriverByName(JPEG); else if (suffix = tif) driver = GetGDALDriverManager()-GetDriverByName(GTiff); else if (suffix = img) driver = GetGDALDriverManager()-GetDriverByName(HFA); else if (suffix = bt) driver

8、 = GetGDALDriverManager()-GetDriverByName(BT); else if (suffix = ecw) driver = GetGDALDriverManager()-GetDriverByName(ECW); else if (suffix = fits) driver = GetGDALDriverManager()-GetDriverByName(FITS); else if (suffix = gif) driver = GetGDALDriverManager()-GetDriverByName(GIF); else if (suffix = hd

9、f) driver = GetGDALDriverManager()-GetDriverByName(HDF4); else if (suffix = hdr) driver = GetGDALDriverManager()-GetDriverByName(EHdr); int w=tmpDataset-GetRasterXSize(); int h=tmpDataset-GetRasterYSize(); GDALDataset *maxNDV=driver-Create(maxNDVfile,w,h,1,GDT_Float32,NULL); int xOff=0; int yOff=0;

10、int width=w; int height=1;/一行一行地读取 vector bufs; for(int i=0;iGetRasterBand(1); for(int j=0;jh;j+) for(int i=0;iGetRasterBand(1); float *buf=bufsi; xOff=0; yOff=j; poband-RasterIO(GF_Read,xOff,yOff,width,height,buf,width,height,GDT_Float32,0,0); buf=NULL; tmpDt=NULL;/在后面再释放,因为很多个指针指向同一一段内存,不能随便释放内存哦

11、/ /在这可以开始运算咯 for(int k=0;kw;k+)/对于每个像元 /下面这段代码以后要支持均值,极差,方差 for(int kk=0;kknewbufk)/最大的,稍微改下就是最小值, newbufk=bufk; /写入数据 newpoband-RasterIO(GF_Write,xOff,yOff,width,height,newbuf,width,height,GDT_Float32,0,0); delete newbuf; newbuf=NULL; for( i=0;ibufs.size();i+) if(bufsi!=NULL) delete bufsi; bufs.resize(0); delete maxNDV; maxNDV=NULL; delete driver; driver=NULL; tmpDataset=NULL; /释放掉内存 for( i=0;idatasets.size();i+) if(datasetsi!=NULL) delete datasetsi; datasetsi=NULL; datasets.resize(0);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1