博客
关于我
图解VC++2012编译安装GDAL1.11.0和入门例子
阅读量:101 次
发布时间:2019-02-26

本文共 1298 字,大约阅读时间需要 4 分钟。

GDAL 开发环境搭建与入门示例

GDAL(Geospatial Data Abstraction Layers)是一种强大的地理数据处理库,广泛应用于地理信息系统开发。以下是搭建GDAL开发环境并使用入门示例的详细步骤。

1. 下载开发资源

确保已下载以下必要文件:

  • GDAL 1.11.0 解压文件
  • gdal1110.zip:包含源代码
  • GDAL.rar:构建成功后的库文件
  • GDAL书籍代码及数据.rar:示例代码及数据集

2. 安装GDAL

步骤 1:配置开发环境

  • 打开 vcvars32.bat,选择对应的 Visual Studio 版本
  • 切换到解压后的 GDAL 目录,运行 nmake /f makefile.vc 进行编译
    注意:编译时间较长,约需 10 分钟
  • 步骤 2:设置输出目录

  • 打开 nmake.opt 文件,修改 GDAL_HOME 为安装目录示例:GDAL_HOME = "D:\GDAL"
  • 创建 D:\GDAL 目录
  • 步骤 3:构建并安装

  • 切换到解压目录,依次运行:
    nmake /f makefile.vc installnmake /f makefile.vc devinstall
  • 构建完成后,GDAL 库文件将位于指定目录
  • 3. 入门开发示例

    创建新项目

  • 新建 Visual Studio 项目,选择 "控制台应用程序"
  • 添加以下包含目录:
    • include:GDAL 头文件
    • lib:GDAL 库文件
  • gdal111.dll 拷贝至项目目录
  • 代码示例

    #include "stdafx.h"#include 
    #include
    using namespace std;int _tmain(int argc, _TCHAR* argv[]) { GDALDataset* poDataset = nullptr; poDataset = GDALOpen("mosaic.tif", GA_ReadOnly); if (poDataset != nullptr) { cout << "Raster XSize: " << poDataset->GetRasterXSize() << endl; cout << "Raster YSize: " << poDataset->GetRasterYSize() << endl; cout << "Raster Count: " << poDataset->GetRasterCount() << endl; GDALClose((GDALDatasetH)poDataset); } getchar(); return 0;}

    运行结果

    • 编译完成后,将 mosaic.tif 放入项目目录,运行可执行文件即可查看 raster 属性

    4. 常用链接

    通过以上步骤,您已成功搭建 GDAL 开发环境,并具备使用入门能力。

    你可能感兴趣的文章
    Node-RED中通过node-red-ui-webcam节点实现访问摄像头并截取照片预览
    查看>>
    Node-RED安装图形化节点dashboard实现订阅mqtt主题并在仪表盘中显示温度
    查看>>
    Node-RED订阅MQTT主题并调试数据
    查看>>
    node-request模块
    查看>>
    Node.js 8 中的 util.promisify的详解
    查看>>
    node.js url模块
    查看>>
    Node.js Web 模块的各种用法和常见场景
    查看>>
    Node.js 函数是什么样的?
    查看>>
    Node.js 切近实战(七) 之Excel在线(文件&文件组)
    查看>>
    node.js 初体验
    查看>>
    Node.js 历史
    查看>>
    Node.js 在个推的微服务实践:基于容器的一站式命令行工具链
    查看>>
    Node.js 实现类似于.php,.jsp的服务器页面技术,自动路由
    查看>>
    Node.js 异步模式浅析
    查看>>
    node.js 怎么新建一个站点端口
    查看>>
    Node.js 文件系统的各种用法和常见场景
    查看>>
    Node.js 模块系统的原理、使用方式和一些常见的应用场景
    查看>>
    Node.js 的事件循环(Event Loop)详解
    查看>>
    node.js 简易聊天室
    查看>>
    Node.js 线程你理解的可能是错的
    查看>>