检查点是否在圆内

2023-11-26

我有一个以纬度/经度表示的点

Position louvreMuseum = new Position( 48.861622, 2.337474 );

我有一个以米表示的半径值。我需要检查另一个点(也以纬度/经度表示)是否在圆内。

如果我在平坦的表面上,我可以简单地使用公式

(x - center_x)^2 + (y - center_y)^2 <= radius^2

正如这些中深入解释的所以答案.

然而,根据纬度/经度的用法,由于行星的球形性质,我无法使用该公式。

如何计算从任意给定点到中心的距离并与半径进行比较?


计算两个坐标之间距离的函数(从此转换为 C#answer):

double GetDistance(double lat1, double lon1, double lat2, double lon2) 
{
    var R = 6371; // Radius of the earth in km
    var dLat = ToRadians(lat2-lat1);
    var dLon = ToRadians(lon2-lon1); 
    var a = 
        Math.Sin(dLat/2) * Math.Sin(dLat/2) +
        Math.Cos(ToRadians(lat1)) * Math.Cos(ToRadians(lat2)) * 
        Math.Sin(dLon/2) * Math.Sin(dLon/2);

    var c = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1-a)); 
    var d = R * c; // Distance in km
    return d;
}

double ToRadians(double deg) 
{
    return deg * (Math.PI/180);
}

如果两点之间的距离小于半径,则它在圆内。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查点是否在圆内 的相关文章

  • WPF 中的填充弧

    I am trying to draw a figure something like this 我需要为每个弧段都有一个独特的元素 我可以根据需要处理事件并重新着色 我有点不确定如何在 WPF 中创建正确的几何图形 我可以根据圆的半径和与
  • 尝试写一个无锁的单链表,麻烦去除

    我正在尝试编写一个无锁单链表 最终一致性不是问题 有人遍历可能包含不正确项目的列表 我认为我正确添加了项目 循环和Interlocked CompareExchange 但我不知道如何删除节点 列表中的任何位置 因为我必须获取前一个项目并设
  • C# 打印问题(RichTextBox)

    我想打印我的 RichTextBox eintragRichTextBox 的内容 我现在有这个代码 private void druckenPictureBox Click object sender EventArgs e PrintD
  • 使用 CLion 进行 OpenCV Windows 设置

    我想在 Windows 上为 CLion IDE 设置 OpenCV 我尝试使用 OpenCV 3 1 和 2 4 得到相同的结果 我有 Windows 10 64 位 CLion 使用 cygwin 环境 到目前为止我做了什么 1 从Op
  • 添加 Nullable int 时保持 null?

    我想添加可为空的int 并保留null当所有值都是null 我想要这个结果 1 2 3 1 null 1 null null null O null 0 问题是 如果我将一个值与 null 相加 结果为 null int i1 1 int
  • CMake 找不到请求的 Boost 库

    既然我已经浏览了其他人的解决方案几个小时 但找不到适合我的问题的正确答案 我想将我的具体问题带给您 我正在尝试使用 CMake 构建 vsomeip 为此 我之前构建了 boost 1 55 但是 我在 CMake 中收到以下错误 The
  • 将 new 与 decltype 一起使用

    T t T is an implementation detail t new T want to avoid naming T to allow for flexibility t new decltype t error cannot
  • 在 Java 中创建 T 的新实例

    在C 中 我们可以定义一个泛型class A
  • 解析 JWT 令牌以仅获取有效负载内容,无需 C# 或 Blazor 中的外部库

    我正在使用 Blazor 编写可以访问 JWT 的客户端应用程序 我想知道一种简单的方法来读取令牌有效负载内容而不添加额外的依赖项 因为我不需要其他信息 也不需要验证令牌 我认为解析有效负载内容应该足够简单 只需将其写入方法即可 JwtTo
  • std::call_once 可重入且线程安全吗?

    std call once http en cppreference com w cpp thread call once是线程安全的 但它也是可重入的吗 我使用 VS2012 调试和发布 进行的测试表明 调用std call once从单
  • 计算另一个表达式中的 C# 表达式

    我想在另一个表达式中使用一个表达式 Expression
  • 将接口转换为其具体实现对象,反之亦然?

    在 C 中 当我有一个接口和几个具体实现时 我可以将接口强制转换为具体类型 还是将具体类型强制转换为接口 这种情况下的规则是什么 Java 和 C 中都允许这两个方向 向下转型需要显式转型 如果对象类型不正确 可能会抛出异常 然而 向上转换
  • 使用 C# 和 wpf 创建类似 Dock 的应用程序

    我需要创建一个与我们购买笔记本电脑时获得的应用程序类似的应用程序 仅当鼠标指针到达窗口顶部时它才可见 那么我怎样才能使用 C 4 0 来做到这一点呢 http www notebookcheck net uploads pics win2
  • 搜索实体的所有字段

    我正在尝试在客户数据库上实现 多功能框 类型的搜索 其中单个查询应尝试匹配客户的任何属性 这是一些示例数据来说明我想要实现的目标 FirstName LastName PhoneNumber ZipCode Mary Jane 12345
  • 引用/指针失效到底是什么?

    我找不到任何定义指针 引用无效在标准中 我问这个问题是因为我刚刚发现 C 11 禁止字符串的写时复制 COW 据我了解 如果应用了 COW 那么p仍然是一个有效的指针并且r以下命令后的有效参考 std string s abc std st
  • 使用 GCC 生成可读的程序集?

    我想知道如何使用GCC http en wikipedia org wiki GNU Compiler Collection在我的 C 源文件中转储机器代码的助记符版本 这样我就可以看到我的代码被编译成什么 你可以使用 Java 来做到这一
  • 从浏览器访问本地文件?

    您好 我想从浏览器访问系统的本地文件 由于涉及大量安全检查 是否可以通过某种方式实现这一目标 或使用 ActiveX 或 Java Applet 的任何其他工作环境 请帮帮我 要通过浏览器访问本地文件 您可以使用签名的 Java Apple
  • 使用 jQuery 从 ASP.Net JSON 服务获取数据

    我正在尝试调用 Google 地图地理编码 API 从纬度 经度对中获取格式化的地址 然后将其记录到控制台 我正在尝试获取为给定位置返回的第一个 formatted address 项目 我很简单无法从 JSON 中提取该项目 我不知道为什
  • 如何调试 .NET 运行时中的内部错误?

    我正在尝试调试一些处理大文件的工作 代码本身works 但 NET 运行时本身会报告零星错误 对于上下文 这里的处理是一个 1 5GB 文件 仅加载到内存中一次 在循环中处理和释放 故意尝试重现此否则不可预测的错误 我的测试片段基本上是 t
  • 需要提取字符串中点后的最后一个数字,如“7.8.9.1.5.1.100”

    我需要提取 C 字符串中最后一个点后面的最后一个数字 例如 7 8 9 1 5 1 100 并将其存储在整数中 Added 该字符串也可以是 7 8 9 1 5 1 1 或 7 8 9 1 5 1 0 我还想验证它在最后一个点之前恰好是 7

随机推荐

  • flutter:NoSuchMethodError:在 null 上调用 getter 'isEmpty'

    我正在调用 Web API 并接收配置文件模型作为响应 当我使用下面的代码时 它会抛出一个错误 try if profile message isEmpty Navigator of context pushNamed home else
  • 将字符串拆分为多个不同的字符

    我想使用一个或多个分隔符来分割字符串 例如 a b c 拆分为 和 将给出列表 a b c 目前 我在标准库中看不到任何东西可以做到这一点 而且我自己的尝试有点笨拙 例如 def my split string split chars if
  • Flutter SliverAppBar 与选项卡覆盖内容

    我已经遵循了这个教程 https medium com diegovoper flutter collapsing toolbar sliver app bar 14b858e87abe 创建带有 TabBar 的折叠工具栏 问题是 当我滚
  • 如何找到某个网站的JSON数据的链接

    我刚刚完成了一个关于如何开发一个 Android 应用程序的教程 该应用程序使用 JSON 数据从博客中检索更新的帖子 用于检索帖子的 JSON 数据的链接是以 api get recent summary 结尾的博客名称 如何找到不同网站
  • onchange 不适用于单选按钮

    我有一些单选按钮应该调用 hider something 当它们发生变化时 即当它们被选中或取消选中时 这是可行的 即 当选中时 它们会调用 JS 函数 但是 如果由于从该组中选择另一个单选按钮而未选中它们 则它不会再次调用 js 脚本 除
  • 为什么当我重新声明 Perl foreach 控制变量时没有收到警告?

    为什么重新声明没有发出警告 i在下面的代码中 usr bin perl use strict use warnings use Data Dumper for my i 1 3 my i DUMMY print Dumper i 实际上 您
  • 字符串到布尔值转换的最佳性能

    将字符串转换为布尔值时 以下哪个选项具有最佳性能 boolean value new Boolean true booleanValue boolean value Boolean valueOf true boolean value Bo
  • 在 Oracle 中找不到请求的 .Net Framework 数据提供程序

    string constr 数据源 DESCRIPTION ADDRESS PROTOCOL tcp HOST spp01 PORT 1521 CONNECT DATA SID Global 用户 ID SYSMAN 密码 testman3
  • 将两个 Uint32Array 值转换为 Javascript 数字

    我找到了一个代码here将 Javascript 数字转换为内部 IEEE 表示形式作为两个 Uint32 值 function DoubleToIEEE f var buf new ArrayBuffer 8 new Float64Arr
  • 收到“530 5.7.0 必须首先发出 STARTTLS 命令。”通过netcat发送邮件时出错

    我正在尝试使用 netcat 发送电子邮件 这就是我得到的 MacBook Pro nc smtp gmail com 25 220 mx google com ESMTP h8sm66301168eew 16 gsmtp Helo gma
  • 用jquery更改flash src?

    您好 我有一个显示一些链接的闪存菜单 但是当用户登录时 我想将菜单从 menu1 更改为 menu2 这样它将显示 我的帐户 而不是 注册 下面的代码适用于我的闪光灯 div div
  • 如何在android中以编程方式更改应用程序小部件中的图像

    我设计了一个 Android 应用程序小部件 其中有两个ImageView我想更改两个图像ImageView当单击图像以及调用方法时 现在我用RemoteView像这样 RemoteViews views1 new RemoteViews
  • 为什么 Activity 中的 onCreate() 受到保护?

    为什么Activity中的onCreate 受到保护 或者我应该问 为什么它有效 受保护的方法只能在类本身或其后代的内部调用 所以Android系统不能像 act onCreate 那样调用它 那么 怎么称呼呢 顺便说一句 为什么 OnCl
  • xgboost 多类工作中的 base_score 有什么用?

    我正在尝试探索 Xgboost 二元分类以及多类的工作原理 在二进制类的情况下 我观 察到基本分数被认为是起始概率 并且在计算时也显示出重大影响Gain and Cover 在多类别的情况下 我无法弄清楚的重要性基本分数参数 因为它向我显示
  • 如何使用 SVN 日志检测修改的属性

    背景 编写一个自动发布脚本 从SVN导出版本之间更改的文件并上传到远程服务器 svn log 命令显示修改的文件and属性 但似乎没有区分内容修改和属性修改之间的详细输出 我是否错误地读取了此输出 或者是否有一种简单的方法可以获取修订之间已
  • 从网站打开资源管理器窗口

    我的公司有一个用于项目的共享网络文件夹 该文件夹包含我们每个客户的子文件夹 每个子文件夹包含为这些客户完成的项目的所有信息 有道理 是吗 OK 我收到了一项任务 当在我们公司的 MS CRM 中查看客户帐户时 允许用户单击一个按钮 打开资源
  • Try/Catch 内部或外部函数

    我有一个关于使用最佳实践的非常基本的问题try catch 我有一个像这样的简单函数 DAO public void addVehicle Vehicle vehicle em getTransaction begin em persist
  • 如何让 Spring Security 接受 JSON 而不是表单参数?

    我正在尝试更改 JHipster 以便它使用 JSON 对象而不是表单参数进行身份验证 我已经设法使其适用于 JWT 身份验证机制 现在我想为其他身份验证选项执行此操作 有没有一种简单的方法可以更改 Spring Security 的默认安
  • void main() { if(sizeof(int) > -1) printf("true"); }否则 printf("假"); ; [复制]

    这个问题在这里已经有答案了 void main if sizeof int gt 1 printf true else printf false 我期望输出为真 但结果是假的 谁能解释一下输出的原因 sizeof int 属于类型size
  • 检查点是否在圆内

    我有一个以纬度 经度表示的点 Position louvreMuseum new Position 48 861622 2 337474 我有一个以米表示的半径值 我需要检查另一个点 也以纬度 经度表示 是否在圆内 如果我在平坦的表面上 我