【GDAL】找不到proj.db标题解决

打印 上一主题 下一主题

主题 886|帖子 886|积分 2658

标题形貌

GDAL是一个开源的地理空间数据处理库,它提供了许多用于读取、写入和转换各种地理空间数据格式的功能。它支持栅格数据(如卫星图像、遥感数据)和矢量数据(如矢量舆图、矢量数据集)的处理。
在使用GDAL库读取tif文件时,大概会遇到下面的报错:
  1. ERROR 1: PROJ: proj_create_from_database: Cannot find proj.db
复制代码
 

这个错误会影响坐标转换,进而无法读取tif。
标题解决

在解决报错标题之前,先先容我的环境:
IDE:VS2017
GDAL版本:3.1.0
编程语言:C++
注意:在使用下面的方法之前,一定要确保项目里已经乐成设置了GDAL库
解决这个标题标办法紧张有两类:


  • 添加体系环境变量
  • 设置proj.db搜索路径
我保举第二种办法,因为程序是要给用户使用的,而且不需要去修改用户的体系环境变量,会更好用
此处展示第二种办法的实现,首先我们引入头文件:
  1. #include "gdal_priv.h"
复制代码
 然后,我们在执行逻辑中添加下面三行代码:
  1. std::string path = "D:\\Environment\\bin\\bin\\Debug-x64\\proj4";
  2. const char* proj_path[] = { path.c_str(), nullptr };
  3. OSRSetPROJSearchPaths(proj_path);
复制代码
 代码的第一行,需要我们找到包含proj.db文件的目次,并将这个目次的路径赋值给 path。
目次结构如下图所示:

从上图可以看到,在这个路径下,包含我们需要的 proj.db
大家根据自己的实际环境修改,目次名不一定非得是 proj4,也大概是 proj6 或 proj7
如果不能解决标题,尝试添加下面两行代码:
  1. #include <proj_api.h>
  2. #define ACCEPT_USE_OF_DEPRECATED_PROJ_API_H
复制代码
 path的路径是可以根据项目需求举行修改的,我这里写死了,大家可以修改
自此,这个标题应该就可以解决了

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

钜形不锈钢水箱

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表