ViSual studio如何安装 并使用GeographicLib

在C++的 Boost.Geometry、GDAL/OGR 和 GeographicLib。这些库都可以用于计算两个经纬度点之间的地面距离。

. Boost.Geometry

  • 描述:Boost库的一部分,提供了几何计算功能,包括计算两点之间的地面距离。

  • 优势:轻量级、易于集成到C++项目中,使用方便。

  • 缺点:精度不够

GDAL/OGR

  • 描述:广泛用于GIS应用,支持各种地理数据操作和计算。

  • 优势:功能强大,适合处理复杂地理信息和精度要求高的计算。

  • 缺点:复杂

GeographicLib

  • 描述:提供精确的地理计算,包括大圆距离和方向计算。

  • 优势:高精度,特别适用于长距离和椭球体模型计算。

感谢博客 园的windows+VS2022安装GeographicLib1.52 - MorpheusDong - 博客园

这篇帖子,这篇帖子是以上面的帖子为基础写的。

GeographicLib是一个开源的C++库,主要用于高精度地理计算。它提供了一系列工具和算法,能够进行地球表面距离、方向、面积和其他地理测量的计算。

首先在官网上下载 相关的exe安装文件

GeographicLib download | SourceForge.net

下载完成后,

一路确定

这个是选择是否把路径加到环境变量里,加不加都行。

选择目标文件夹

安装完成后的目录如下。

配置VS

右击项目->属性->【VC++目录】。

在“包含目录”中,添加 \include 目录。

在“库目录”中,添加 \lib 目录。

\lib目录,带_d后缀的是debug模式要链接的依赖。

 

在【链接器】->【输入】->【附加依赖项】,包含:

Geographic_d.lib
Geographic_d-i.lib

后注意要添加一个预处理器定义。

GEOGRAPHICLIB_SHARED_LIB=1

指定使用共享库(shared library)版本的GeographicLib

确定保存,至此代码可以编译,但是还要配置一下环境变量,否则会提示缺少dll文件。

配置环境变量

打开环境变量窗口,在“系统变量”的path里添加\bin目录。

点击后

双击path

把dll文件所在的bin文件夹地址写入

重启VS,新建项目,输入测试代码

#include <iostream>
#include <GeographicLib/Geodesic.hpp>  // 确保包含了正确的头文件double calculate_geodesic_distance(double lat1, double lon1, double lat2, double lon2) {const GeographicLib::Geodesic& geod = GeographicLib::Geodesic::WGS84();double distance;geod.Inverse(lat1, lon1, lat2, lon2, distance);return distance / 1000.0;  // 转换为公里
}int main() {double distance = calculate_geodesic_distance(34.0522, -118.2437, 40.7128, -74.0060);std::cout << "Geodesic Distance: " << distance << " km" << std::endl;return 0;
}

点击调试运行

计算得到洛杉矶到纽约的距离为3944.42km

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站攻击,XSS攻击的类型

XSS&#xff08;跨站脚本&#xff09;攻击是一种网络安全攻击方式&#xff0c;攻击者通过在网站页面中注入恶意脚本&#xff0c;使脚本在其他用户的浏览器中执行&#xff0c;从而窃取用户信息、篡改页面内容或操控用户账户。这类攻击通常利用网站对输入数据的过滤不严格&#x…

接口测试加密了怎么测试

各位小伙伴&#xff0c;大家好&#xff0c;今天给大家带来的是接口测试加密了我们该怎么测试。 首先我们来了解一下什么是接口&#xff0c;在我们生活中&#xff0c;水管接口&#xff0c;管道接口等等&#xff0c;在我们软件中通常说的是客户端和服务端之间数据传输的接口。我…

尽可能连续的基于挤压的表面模型制造

&#x1f98c;&#x1f98c;&#x1f98c;宝子们好&#xff0c;今天我们来看一个关于外壳打印的路径优化问题。同样的&#xff0c;红色的是术语、橙色的是方法、绿色的是算法过程&#xff0c;这次多加了紫色&#xff0c;是文章的创新点或目标等。废话不多说&#xff0c;上论文 …

linux驱动—在自己的总线目录下创建属性文件

在总线目录下创建属性文件以扩展其功能。 通过创建属性文件&#xff0c; 我们可以为总线添加额外的信息和控制选项&#xff0c; 以便与设备和驱动进行交互。 简单就是&#xff0c;属性文件&#xff0c;可以完成用户空间和内核空间的数据交互&#xff0c; 比如在应用层快速修改g…

【Searxng】Searxng docker 安装

SearXNG将用户的查询请求分发至多个支持的搜索引擎&#xff0c;并收集返回的结果进行汇总处理。在这个过程中&#xff0c;它通过内置的过滤器功能屏蔽广告和其他不相关内容&#xff0c;确保搜索结果的纯净度。 一键部署 docker run \--name searxng \-p ????:8080 \-v ~/s…

gitlab不同账号间·仓库转移

背景&#xff1a;公司业务调整&#xff0c;原先在海外仓库的代码转移回国内 诉求&#xff1a;完整的保留项目记录 操作&#xff1a; 步骤一: 定位到需要迁移的原项目地址 步骤二&#xff1a;创建新项目 步骤三&#xff1a;打开命令行&#xff0c;创建好文件路径为需要clo…

Ubuntu 安装 npm

1. 升级apt sudo apt-get update 2. 安装nodejs sudo apt install nodejs 3. 安装npm sudo apt-get install npm 4. 查看版本 node -v npm -v 完成安装&#xff01;

Pytorch学习--神经网络--线性层及其他层

一、正则化层 torch.nn.BatchNorm2d torch.nn.BatchNorm2d(num_features, eps1e-05, momentum0.1, affineTrue, track_running_statsTrue, deviceNone, dtypeNone)正则化的意义&#xff1a; 加速训练收敛&#xff1a;在每一层网络的输入上执行批量归一化可以保持数据的分布稳…

Zig 语言通用代码生成器:逻辑,冒烟测试版发布二

Zig 语言通用代码生成器&#xff1a;逻辑&#xff0c;冒烟测试版发布二 Zig 语言是一种新的系统编程语言&#xff0c;其生态位类同与 C&#xff0c;是前一段时间大热的 rust 语言的竞品。它某种意义上的确非常像 rust&#xff0c;尤其是在开发过程中无穷无尽抛错的过程&#x…

复现第一周24

1.[SWPUCTF 2021 新生赛]gift_F12 1&#xff09;打开题目 2&#xff09;看源码 3&#xff09;直接ctrl&#xff0b;f搜索flag 2.[SWPUCTF 2021 新生赛]nc签到 1&#xff09;开题 2&#xff09;下载附件用记事本打开 3&#xff09;打开kali使用nc连接代码 输入l\s命令绕过黑名…

warmup

首页只有一个笑脸&#xff0c;没有什么有效信息&#xff0c; 查看源代码发现,source.php。 访问source.php,显而易见&#xff0c;php代码审计。 <?phphighlight_file(__FILE__);class emmm{public static function checkFile(&$page){ //设立白名单&#xff0c;so…

Python 的安装及开发环境搭建

Python 的安装及开发环境搭建 文章目录 Python 的安装及开发环境搭建一、基础环境二、适用场景三、过程方法 版权声明&#xff1a;本文为CSDN博主「杨群」的原创文章&#xff0c;遵循 CC 4.0 BY-SA版权协议&#xff0c;于2024年10月29日首发于CSDN&#xff0c;转载请附上原文出…

Spring的高效开发思维(二)

时间&#xff1a;2024年 10月 30日 作者&#xff1a;小蒋聊技术 邮箱&#xff1a;wei_wei10163.com 微信&#xff1a;wei_wei10 音频&#xff1a;喜马拉雅 大家好&#xff0c;我是小蒋&#xff01;今天咱们继续深入 Spring 和 Spring Boot 的核心哲学。其实开发并不只是“码…

LeetCode算法(链表)

今天的算法是链表篇&#xff0c;这篇比较简单&#xff0c;总体是之前完成的手写链表&#xff0c;几乎就是链表的大部分知识了&#xff0c;所以今天算是一个复习内容了。 链表是一种通过指针串联在一起的线性结构&#xff0c;每一个节点由两部分组成&#xff0c;一个是数据域一…

Docker:容器化和虚拟化

虚拟化 虚拟化是一种资源管理技术&#xff0c;它将计算机的各种实体资源&#xff08;如CPU、内存、磁盘空间、网络适配器等&#xff09;予以抽象、转换后呈现出来&#xff0c;并可供分割、组合为一个或多个电脑配置环境。这些资源的新虚拟部分是不受现有资源的架设方式、地域或…

如何有效提升MySQL大表分页查询效率(本文以一张900万条数据体量的表为例进行详细解读)

文章目录 1、提出问题1.1 问题测试 2、解决问题&#xff08;三种方案&#xff09;2.1、方案一&#xff1a;查询的时候&#xff0c;只返回主键 ID2.2、方案二&#xff1a;查询的时候&#xff0c;通过主键 ID 过滤2.3、方案三&#xff1a;采用 elasticSearch 作为搜索引擎 3、总结…

DGUS屏使用方法

1、DGUS工程下载 迪文DGUS屏的所有硬件参数和资料下载&#xff0c;都是通过屏上的SD/SDHC接口来完成的&#xff0c;文件必须使用FAT32文件格式。第一次使用SD卡前&#xff0c;推荐先格式化一次&#xff0c;流程如下&#xff1a; 1、 右键单击SD卡&#xff0c;在弹出来的菜单中选…

设计产品宣传册没头绪?推荐一个超多产品宣传册、画册的案例网站

在当今市场竞争激烈的背景下&#xff0c;产品宣传册和画册是企业宣传的重要手段之一。一本独具匠心的宣传册&#xff0c;不仅能够准确传达产品特点&#xff0c;还能吸引潜在客户&#xff0c;提升品牌形象。然而&#xff0c;设计一本优秀的宣传册并非易事&#xff0c;许多设计师…

接口测试(八)jmeter——参数化(CSV Data Set Config)

一、CSV Data Set Config 需求&#xff1a;批量注册5个用户&#xff0c;从CSV文件导入用户数据 1. 【线程组】–>【添加】–>【配置元件】–>【CSV Data Set Config】 2. 【CSV数据文件设置】设置如下 3. 设置线程数为5 4. 运行后查看响应结果