首页 > 代码库 > gdal库的学习和使用
gdal库的学习和使用
1、windows下的编译
1.1、解压后打开nmake.opt,设置GDAL_HOME
1.2、进入vs的command promot,进入正常的那个即可,64位的没试过,可以参考gdal官网
1.3、nmake /f makefile.vc
1.4、nmake /f makefile.vc install
1.5、nmake /f makefile.vc devinstall
2、打开文件
#include "gdal_priv.h" #include "cpl_conv.h" // for CPLMalloc() int main() { GDALDataset *poDataset; GDALAllRegister(); poDataset = (GDALDataset *) GDALOpen( pszFilename, GA_ReadOnly ); if( poDataset == NULL ) { ...; }
gdal中文路径的问题
不改变GDAL源代码,在自己调用GDALRegisterAll()和OGRAllRegiser()函数后,加上下面一句即可。
CPLSetConfigOption("GDAL_FILENAME_IS_UTF8","NO");
3、获取数据集合信息
adfGeoTransform[0] /* top left x */ adfGeoTransform[1] /* w-e pixel resolution */ adfGeoTransform[2] /* 0 */ adfGeoTransform[3] /* top left y */ adfGeoTransform[4] /* 0 */ adfGeoTransform[5] /* n-s pixel resolution (negative value) */
double adfGeoTransform[6]; printf( "Driver: %s/%s\n", poDataset->GetDriver()->GetDescription(), poDataset->GetDriver()->GetMetadataItem( GDAL_DMD_LONGNAME ) ); printf( "Size is %dx%dx%d\n", poDataset->GetRasterXSize(), poDataset->GetRasterYSize(), poDataset->GetRasterCount() ); if( poDataset->GetProjectionRef() != NULL ) printf( "Projection is `%s‘\n", poDataset->GetProjectionRef() ); if( poDataset->GetGeoTransform( adfGeoTransform ) == CE_None ) { printf( "Origin = (%.6f,%.6f)\n", adfGeoTransform[0], adfGeoTransform[3] ); printf( "Pixel Size = (%.6f,%.6f)\n", adfGeoTransform[1], adfGeoTransform[5] ); }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。