proj库配置与使用(window11,vs2019,x64)

news2025/1/18 4:37:19

前置安装依赖

1.SQLite3 安装 亲测

(97条消息) SQLite3源码下载与编译(开发环境:Win10+VS2022)_sqlite3 下载_林夕07的博客-CSDN博客

2.TIFF  亲测

(97条消息) Win11下基于cmake-3.26.3 完美编译 TIFF-4.5.0源码_tiff 编译_GIS子枫的博客-CSDN博客

安装他的方法,最后到编译才会报错:error MSB3073: 命令“setlocal。解决方法如下

最后生成的tiff在c盘

 3.curl 编译   亲测

编译很难,就直接在window上安装

(97条消息) Windows上安装Curl工具_windows curl 工具_Janson666的博客-CSDN博客

proj安装

方法一 亲测可以cmake生成,但是编译会出现Link报错,不会解决

(97条消息) PROJ 9.1.1源码下载编译(Win10+VS2022)_proj下载_林夕07的博客-CSDN博客

 config的时候看报啥错 就 把路径整上去

cmke报错记得别看warning,看error

 

编译link报错,可以 

删除了proj链接器中的CURL_ENABLED,哪个项目报错关于curl就删除CURL_ENABLED宏

方法二,我是照着配置Visual Studio C++环境中GDAL、SQLite与PROJ库的方法 - 知乎 (zhihu.com)

同时结合之前安装的一些前置库,还是在编译阶段报错 

无法解析的外部符号 __imp__curl_easy_init_QWQ_Plus的博客-CSDN博客

这些用处都没有,还是报错。

最后我把proj把动态库弄成静态库了再把test network删除  可以编译成功了

测试案例的时候发现上面的静态库方案不对,还是改成了动态库

最终!!!!!!!!!!!!!!!!!!

删除了proj链接器中的CURL_ENABLED 宏就可以编译通过了,哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈

练习案例

#include <stdio.h>
#include <proj.h>
#include <iostream>
using namespace std;
int main(void) {
    PJ_CONTEXT* C;//用于处理多线程程序
    PJ* P;//初始化投影目标
    PJ* norm;//初始化投影目标
    PJ_COORD a, b;//初始化投影坐标

    /* or you may set C=PJ_DEFAULT_CTX if you are sure you will     */
    /* use PJ objects from only one thread                          */
    C = proj_context_create();//创建多线程,由于本示例为单线程,此处为展示作用

    P = proj_create_crs_to_crs(C,
        "EPSG:4326",//源投影
        "+proj=utm +zone=32 +datum=WGS84", //目标投影
        NULL);//创建在线程C内两个投影关系之间的相互转换

    if (0 == P) {
        cout << "Failed to create transformation object." << stderr << endl;
        return 1;
    }//如果P中两个投影的字符串不符合proj定义,提示转换失败
    /* This will ensure that the order of coordinates for the input CRS */
    /* will be longitude, latitude, whereas EPSG:4326 mandates latitude, */
    /* longitude */
    norm = proj_normalize_for_visualization(C, P);//在线程C内使投影目标P和norm拥有相同的坐标格式,此处为经纬度
    if (0 == norm) {
        cout << " Failed to normalize transformation object." << stderr << endl;
        return 1;
    }//norm为0,说明格式同步失败
    proj_destroy(P);//释放投影
    P = norm;//投影赋值

    /* a coordinate union representing Copenhagen: 55d N, 12d E    */
    /* Given that we have used proj_normalize_for_visualization(), the order of
    /* coordinates is longitude, latitude, and values are expressed in degrees. */
    a = proj_coord(12, 55, 0, 0);//设定待转换的投影坐标,此处分别为经度,纬度,高程,时间
    /* transform to UTM zone 32, then back to geographical */
    b = proj_trans(P, PJ_FWD, a);//投影转换,fwd代表源投影转换成目标投影,INV代表目标投影转换为源投影
    cout << "East: " << b.enu.e << "; North:" << b.enu.n << endl;;//经纬度转化为xy坐标

    b = proj_trans(P, PJ_INV, b);//xy坐标转化为经纬度坐标
    cout << "Longitude: " << b.lp.lam << "; Latitude: " << b.lp.phi << endl;;//lam为经度,phi为纬度

    /* Clean up */
    proj_destroy(P);
    proj_context_destroy(C); /* may be omitted in the single threaded case */
    return 0;
}


生成目录下添加tiff.dll和Proj那个dll

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/829439.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

免费的ssl证书

免费的SSL证书对于保证网站的安全性和信任度来说是非常重要的。虽然有些人可能会认为&#xff0c;免费的SSL证书可能不如付费的证书有效&#xff0c;但事实并非如此。 首先&#xff0c;免费的SSL证书同样能够为网站提供加密与解密的功能。这意味着所有的数据将会在传输过程中被…

【雷达通信】非相干多视处理(CSA)(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

[JAVA基础]自动拆装箱NPE问题

1.自动拆装箱场景 自动装箱 当把字面量转换成包装类的时候会自动装箱 比如&#xff1a; Integer a 1; Integer b 1; 自动拆箱 当你对包装类的对象进行运算&#xff08;如加法、减法等&#xff09;时&#xff0c;Java会自动进行拆箱操作。拆箱是将包装类型的对象转换为相应的基…

JavaScript 面向对象

一、对象 1.新建一个对象 // An object literal with two key-value pairs let spaceship {Fuel Type: diesel,color: silver }; We separate each key-value pair in an object literal with a comma (,) Keys are strings, but when we have a key that does not have any…

真人AI写真的制作方法-文生图换脸

AI写真最近火起来了&#xff0c;特别是某款现象级相机的出现&#xff0c;只需要上传自己的照片&#xff0c;就能生成漂亮的写真照&#xff0c;这一产品再次带火了AI绘画。今天我就来分享一个使用Stable Diffusion WebUI制作真人AI写真的方法&#xff0c;不用训练&#xff0c;快…

专家论道: 唐贤香云纱塑造中国非遗国际品牌

自“香云纱染整技艺”入选第二批国家级非物质文化遗产以来&#xff0c;被誉为纺织界“软黄金”的香云纱&#xff0c;重新焕发青春&#xff0c;频频登上时尚舞台&#xff0c;以不一样的面貌展示在世人面前&#xff0c;成为服装设计师、消费者青睐的材质。而随着北京卫视播出的《…

【JAVA】 javaSE中的数组|数组的概念使用

数组的概念 什么是Java中的数组 数组&#xff1a;可以看成是相同类型元素的一个集合。在内存中是一段连续的空间。在java中&#xff0c;包含6个整形类型元素的数组&#xff0c;可以看做是酒店中连续的6个房间. 1. 数组中存放的元素其类型相同 2. 数组的空间是连在一起的 3…

MySQL系统数据库及常用工具指令介绍

文章目录 1.系统数据库2.常用工具2.1 -e指令2.2 mysqladmin指令2.3 mysqlbinlog指令2.4 mysqlshow指令2.5 mysqldump指令 数据备份2.6 mysqlimport/source 指令 数据导入 3.指令小结 1.系统数据库 2.常用工具 2.1 -e指令 不用登陆mysql直接执行脚本命令 mysql -h192.168.200.…

一 关于idea如何在svn进行项目下载并运行成功

安装svn客户端 如图 安装时请选择该选项&#xff08;Will be installed on local hard drive&#xff09;并选择自己想要安装的目录路径 如图 svn安装成功 如图 注意 安装完成后&#xff0c;使用svn进行一次checkout的项目导出完成以上五步时&…

量化:numpy基础

文章目录 ndarray创建array创建顺序数组改变数据类型nan筛选元素去重重塑 ndarray numpy最重要的一个特点是其N维数组对象ndarry&#xff0c;它是一系列同类型数据的集合 创建array ndarry的创建方式如下&#xff1a; numpy.array(object, dtype None, copy True, order …

线上通过Nginx部署前端工程,并且配置SSL

介绍、为了更好的帮助大家学习&#xff0c;减少歧义,IP地址我就不隐藏了&#xff0c;公司也是我自己的公司。你们就别来攻击了。 下面给出步骤: 一、前期准备工作 通过在目标服务器上安装宝塔面板、安装redis、mysql、nginx、jdk环境等 1、 2、前端工程通过npm run build 打…

需要买apple pencil吗?平价的ipad手写笔推荐

自从ipad等平板电脑开始使用电容笔以来&#xff0c;电容笔已经成功地代替了我们的双手&#xff0c;使得我们的书写速度得到了极大的提高。但是&#xff0c;因为苹果原装的电容笔&#xff0c;因为具有独特的压感以及芯片技术&#xff0c;所以其的价格始终居高不下&#xff0c;这…

IntelliJ IDEA 2023.2社区版插件汇总

参考插件帝&#xff1a;https://gitee.com/zhengqingya/java-developer-document 突发小技巧&#xff1a;使用插件时要注意插件的版本兼容性&#xff0c;并根据自己的实际需求选择合适的插件。同时&#xff0c;不要过度依赖插件&#xff0c;保持简洁和高效的开发环境才是最重要…

APP开发中的性能优化:提升用户满意度的关键

APP开发中的性能优化是需要持续进行的&#xff0c;它不仅能够让用户体验到 APP的使用感受&#xff0c;还能在一定程度上提升用户的满意度&#xff0c;从而提升 APP的粘性和转化率。不过在实际开发中&#xff0c;很多 APP开发公司会存在性能优化上的问题&#xff0c;这就需要了解…

蓝网科技股份有限公司存在SQL注入

书把他从沉重的生活中拉出来&#xff0c;使他的精神不致被劳动压的麻木不仁。通过不断地读书&#xff0c;他认识到&#xff0c;只有一个人对世界了解得更广大&#xff0c;对人生看得更深刻&#xff0c;那么&#xff0c;他才可能对自己所处的艰难和困苦有更高意义的理解&#xf…

ChatGLM-6B大模型微调实战总结

作者简介&#xff1a;赵辉&#xff0c;区块链技术专家&#xff0c;精通各种联盟链、公链的底层原理&#xff0c;拥有丰富的区块链应用开发经验。 上篇我们已经具备了 ChatGLM-6B 初步的运行环境&#xff0c;这为实现完全属于自己的模型奠定了基础&#xff08;快速部署ChatGLM-6…

LeetCode·每日一题·722. 删除注释·模拟

题目 示例 思路 题意 -> 给定一段代码&#xff0c;将代码中的注释删除并返回。 由于注释只有两种类型&#xff1a; 字符串// 表示行注释&#xff0c;表示//和其右侧的其余字符应该被忽略。字符串/* 表示一个块注释&#xff0c;它表示直到下一个&#xff08;非重叠&#x…

怎么设置文件夹密码?文件夹密码设置方法合集

为文件夹设置密码可以有效地保护文件夹的数据安全&#xff0c;那么该怎么设置文件夹密码呢&#xff1f;下面我们来一起了解一下。 文件夹保护3000 想要简单快捷的为文件夹设置密码&#xff0c;那么&#xff0c;文件夹保护3000就是最佳的选择。它提供了3种文件夹保护方式&#…

基于SpringBoot+Vue的CSGO赛事管理系统设计与实现(源码+LW+部署文档等)

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

微信小程序使用editor富文本编辑器 以及回显 全屏弹窗的模式

<!--富文本接收的位置--><view class"white-box"><view class"title"><view class"yellow-fence"></view><view class"v1">教研记录</view></view><view class"add-btn"…