GDAL使用PROJ坐标转换相关问题的总结

简介: GDAL使用PROJ坐标转换相关问题的总结

GDAL使用PROJ坐标转换相关问题的总结

目录

1. 概述

GDAL是使用PROJ进行坐标转换的,但是很容易出现转换不了的问题,这里总结一二,以供参考。

2. 详论

总的来说,要保证两个大致的方向不要出错。

2.1. 数据

PROJ库本身只是坐标转换的运算库,空间参考的定义依赖于我们传入的坐标参考的字符串。而GDAL则对所有的空间参考进行了管理,在GDAL编译好之后,都会有这个数据目录:

所以在通过GDAL进行转换之前,必要得配置这个目录,否则GDAL就会因为找不到坐标的空间参考数据而转换失败。

配置的办法有两个(二选一):

  1. 在系统中设置新的环境变量GDAL_DATA为上面提到的数据目录。
  2. 使用GDAL之前调用一次配置函数:CPLSetConfigOption("GDAL_DATA", "D:/Work/GDALBuild/gdal-2.4.4/install/data");

推荐使用第二种方法。

2.2. PROJ库

如果使用的PROJ库是动态库(一般情况下),需要注意的是PROJ库的名称。GDAL是以显式加载的方式使用PROJ,并且使用的默认名称为proj.dll。最近PROJ库开始疯狂飙版本号,所以编译出来的时候不一定是这个名字,所以最好把编译好的PROJ库名称修改成proj.dll,放在GDAL库的同目录下即可。

如果不想修改,有的资料提出,这个库文件的地址也是可以配置的:

std::string strPrjLibFullPath = (_T("C:\\projd.dll"));
CPLSetConfigOption("PROJSO",strPrjLibFullPath.c_str());

除此之外,还有个很好的办法是编译GDAL的时候使用PROJ的静态库,就不用担心路径和名称的问题了。

2.3. 参考

  1. C++的dll库,采用动态调用更好还是静态调用更好? - Eleven的回答 - 知乎
  2. gdal库中设置prj4库全路径的用法
  3. gdal库的三个使用心得

分类: GDAL

标签: 坐标转换 , Proj4 , GDAL


相关文章
|
Java 定位技术 数据处理
windows下gdal的java开发环境搭建
本文介绍了gdal在windows环境下怎么搭建java开发,同时提供一个开发示例,通过输出gdal支持的数据驱动来演示其支持的数据类型,同时表明我们的环境搭建完成,可以基于java进行相应开发。
1815 0
windows下gdal的java开发环境搭建
|
C++ 索引
vscode clangd c++开发常见问题和解决方案
vscode clangd c++开发常见问题和解决方案
4449 0
|
编解码 数据可视化
Google Earth Engine——gee文件导出到drive:影像等大文件导出100000000超限解决办法
Google Earth Engine——gee文件导出到drive:影像等大文件导出100000000超限解决办法
3333 0
Google Earth Engine——gee文件导出到drive:影像等大文件导出100000000超限解决办法
|
10月前
|
机器学习/深度学习 人工智能 前端开发
终端里的 AI 编程助手:OpenCode 使用指南
OpenCode 是开源的终端 AI 编码助手,支持 Claude、GPT-4 等模型,可在命令行完成代码编写、Bug 修复、项目重构。提供原生终端界面和上下文感知能力,适合全栈开发者和终端用户使用。
60545 11
|
缓存 监控 数据库
缓存穿透、击穿、雪崩的应对策略
本文系统分析了缓存穿透、击穿与雪崩的成因及应对策略,涵盖布隆过滤器、空值缓存、分布式锁、逻辑过期、随机过期时间、多级缓存等解决方案,并结合代码示例与监控告警机制,助力构建高可用缓存体系。
753 1
|
安全 Java API
2025 年 Java 校招面试常见问题及详细答案汇总
本资料涵盖Java校招常见面试题,包括Java基础、并发编程、JVM、Spring框架、分布式与微服务等核心知识点,并提供详细解析与实操代码,助力2025校招备战。
647 1
|
数据采集
GEE:如何进行对MOD09GA数据集进行水体/云掩膜并计算NDVI将其导出至云盘?
GEE:如何进行对MOD09GA数据集进行水体/云掩膜并计算NDVI将其导出至云盘?
1424 0
|
存储 人工智能 NoSQL
拆解LangChain的大模型记忆方案
之前我们聊过如何使用LangChain给LLM(大模型)装上记忆,里面提到对话链ConversationChain和MessagesPlaceholder,可以简化安装记忆的流程。下文来拆解基于LangChain的大模型记忆方案。
拆解LangChain的大模型记忆方案
|
Docker 容器
如何查看docker版本|12
如何查看docker版本|12
844 3
|
人工智能 自然语言处理 安全
claude国内怎么用?教你两种claude国内使用方法!
Claude AI 是由 Anthropic 公司开发的一款新一代 AI 助手,旨在成为更安全、更友好、更可靠的 AI 系统。它基于 Anthropic 对 AI 安全性的深入研究,并采用 “Constitutional AI” (宪法式 AI) 的训练方法,使其行为更符合人类价值观,并减少有害输出的可能性。 🛡️