如何确定两组纬度/经度坐标之间的距离?

2023-11-24

我正在尝试写一些东西来确定纬度/经度坐标组之间的距离。

我正在使用我在上面找到的以下代码这个网站:

public static double distance (double lat1, double lon1, double lat2, double lon2) { 
    double lat1 = Convert.ToDouble(latitude);
    double lon1 = Convert.ToDouble(longitude);
    double lat2 = Convert.ToDouble(destlat);
    double lon2 = Convert.ToDouble(destlon);

    double theta = toRadians(lon1-lon2); 
    lat1 = toRadians(lat1); 
    lon1 = toRadians(lon1); 
    lat2 = toRadians(lat2); 
    lon2 = toRadians(lon2); 

    double dist = sin(lat1)*sin(lat2) + cos(lat1)*cos(lat2)*cos(theta); 
    dist = toDegrees(acos(dist)) * 60 * 1.1515 * 1.609344 * 1000; 

    return dist; 
} 

我的问题是我遇到了编译错误“名称 'toRadians'/'cos'/'sin/'toDegrees' 在当前上下文中不存在......”我究竟做错了什么?


您可能想要使用以下 C# 类:

public static class GeoCodeCalc
{
    public const double EarthRadiusInMiles = 3956.0;
    public const double EarthRadiusInKilometers = 6367.0;

    public static double ToRadian(double val) { return val * (Math.PI / 180); }
    public static double DiffRadian(double val1, double val2) { return ToRadian(val2) - ToRadian(val1); }

    public static double CalcDistance(double lat1, double lng1, double lat2, double lng2) 
    {
        return CalcDistance(lat1, lng1, lat2, lng2, GeoCodeCalcMeasurement.Miles);
    }

    public static double CalcDistance(double lat1, double lng1, double lat2, double lng2, GeoCodeCalcMeasurement m) 
    {
        double radius = GeoCodeCalc.EarthRadiusInMiles;

        if (m == GeoCodeCalcMeasurement.Kilometers) { radius = GeoCodeCalc.EarthRadiusInKilometers; }
        return radius * 2 * Math.Asin( Math.Min(1, Math.Sqrt( ( Math.Pow(Math.Sin((DiffRadian(lat1, lat2)) / 2.0), 2.0) + Math.Cos(ToRadian(lat1)) * Math.Cos(ToRadian(lat2)) * Math.Pow(Math.Sin((DiffRadian(lng1, lng2)) / 2.0), 2.0) ) ) ) );
    }
}

public enum GeoCodeCalcMeasurement : int
{
    Miles = 0,
    Kilometers = 1
}

Usage:

// Calculate Distance in Miles
GeoCodeCalc.CalcDistance(47.8131545175277, -122.783203125, 42.0982224111897, -87.890625);

// Calculate Distance in Kilometers
GeoCodeCalc.CalcDistance(47.8131545175277, -122.783203125, 42.0982224111897, -87.890625, GeoCodeCalcMeasurement.Kilometers);

Source: Chris Pietschmann - 计算 C# 和 JavaScript 中地理编码之间的距离

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

如何确定两组纬度/经度坐标之间的距离? 的相关文章

  • 如何获取正在访问 ASP.NET 应用程序的当前用户?

    为了获取系统中当前登录的用户 我使用以下代码 string opl System Security Principal WindowsIdentity GetCurrent Name ToString 我正在开发一个 ASP NET 应用程
  • “构建”构建我的项目,“构建解决方案”则不构建

    我刚刚开始使用VS2010 我有一个较大的解决方案 已从 VS2008 成功迁移 我已将一个名为 Test 的控制台应用程序项目添加到解决方案中 选择构建 gt 构建解决方案不编译新项目 选择构建 gt 构建测试确实构建了项目 在失败的情况
  • WCF RIA 服务 - 加载多个实体

    我正在寻找一种模式来解决以下问题 我认为这很常见 我正在使用 WCF RIA 服务在初始加载时将多个实体返回给客户端 我希望两个实体异步加载 以免锁定 UI 并且我想利用 RIA 服务来执行此操作 我的解决方案如下 似乎有效 这种方法会遇到
  • GLKit的GLKMatrix“列专业”如何?

    前提A 当谈论线性存储器中的 列主 矩阵时 列被一个接一个地指定 使得存储器中的前 4 个条目对应于矩阵中的第一列 另一方面 行主 矩阵被理解为依次指定行 以便内存中的前 4 个条目指定矩阵的第一行 A GLKMatrix4看起来像这样 u
  • 为什么当实例化新的游戏对象时,它没有向它们添加标签? [复制]

    这个问题在这里已经有答案了 using System Collections using System Collections Generic using UnityEngine public class Test MonoBehaviou
  • 用于登录 .NET 的堆栈跟踪

    我编写了一个 logger exceptionfactory 模块 它使用 System Diagnostics StackTrace 从调用方法及其声明类型中获取属性 但我注意到 如果我在 Visual Studio 之外以发布模式运行代
  • 在 Windows 窗体中保存带有 Alpha 通道的单色位图会保存不同(错误)的颜色

    在 C NET 2 0 Windows 窗体 Visual Studio Express 2010 中 我保存由相同颜色组成的图像 Bitmap bitmap new Bitmap width height PixelFormat Form
  • 如何从 appsettings.json 文件中的对象数组读取值

    我的 appsettings json 文件 StudentBirthdays Anne 01 11 2000 Peter 29 07 2001 Jane 15 10 2001 John Not Mentioned 我有一个单独的配置类 p
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • 重载<<的返回值

    include
  • SolrNet连接说明

    为什么 SolrNet 连接的容器保持静态 这是一个非常大的错误 因为当我们在应用程序中向应用程序发送异步请求时 SolrNet 会表现异常 在 SolrNet 中如何避免这个问题 class P static void M string
  • 这些作业之间是否存在顺序点?

    以下代码中的两个赋值之间是否存在序列点 f f x 1 1 x 2 不 没有 在这种情况下 标准确实是含糊不清的 如果你想确认这一点 gcc 有这个非常酷的选项 Wsequence point在这种情况下 它会警告您该操作可能未定义
  • 如何使用 C# / .Net 将文件列表从 AWS S3 下载到我的设备?

    我希望下载存储在 S3 中的多个图像 但目前如果我只能下载一个就足够了 我有对象路径的信息 当我运行以下代码时 出现此错误 遇到错误 消息 读取对象时 访问被拒绝 我首先做一个亚马逊S3客户端基于我的密钥和访问配置的对象连接到服务器 然后创
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • IEnumreable 动态和 lambda

    我想在 a 上使用 lambda 表达式IEnumerable
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new

随机推荐

  • Android 获取图片文件路径

    我有一个可以制作图片并上传的应用程序 上传需要照片的文件路径 但我无法获取 这是我的代码 public void maakfoto View v Intent cameraIntent new Intent android provider
  • 使用 C# winform 的 Zeromq pub/sub 示例

    我正在尝试创建一个在发布 订阅模型中使用 ZeroMQ clrzmq net 绑定 x86 通过 nuget 的 C Winform 应用程序 经过大量搜索 我只能找到独立的 C 示例 其中代码使用 while 语句无限期地处理新消息 当我
  • 是否可以借用结构体的一部分作为可变的而其他部分作为不可变的?

    如果结构体的字段是私有的 是否可以借用结构体的一部分作为可变的 而另一部分作为不可变的 fn main let mut ecs EntityComponentSystem new for e id in ecs get entities w
  • 使用 cqlsh 复制非常大的 cassandra 表时出现 PicklingError

    当我尝试使用以下命令将表复制到 cassandra 时 copy images from images csv 我收到错误 PicklingError Can t pickle
  • 编译器优化能否消除在 for 循环条件中重复调用的函数?

    我正在阅读有关哈希函数的内容 我是一名中级计算机科学学生 并发现了这一点 int hash const string key int tableSize int hasVal 0 for int i 0 i lt key length i
  • 如何向用户授予 SSRS 浏览器对文件夹的权限,而不授予他们访问根目录的权限

    当用户浏览到 http ssrs server reports 时 除非他们拥有根文件夹的浏览器权限 否则他们的访问会被拒绝 如果他们在文件夹 Dept 1 Reports 上有浏览器 则他们可以成功浏览到 http ssrs server
  • MVC5 Razor html.dropdownlistfor 当值在数组中时设置选择

    我正在使用 C 和 NET Framework 4 6 1 开发 ASP NET MVC 5 应用程序 我有这个View model MyProject Web API Models AggregationLevelConfViewMode
  • 如何递归解压嵌套的 ZIP 文件?

    假设嵌套 ZIP 文件深处有一个秘密文件 即 zip 文件内的 zip 文件内的 zip 文件 等等 zip 文件的名称为1 zip 2 zip 3 zip etc 我们不知道 zip 文件嵌套的深度 但可能有数千个 循环遍历所有文件直到最
  • 在 Sails.js 中处理数据库环境配置

    我遇到的问题与以下引用有关官方文档 注意 如果模型使用了与适配器的任何连接 则与该适配器的所有连接都将加载到 sails lift 上 无论模型是否实际使用它们 在上面的示例中 如果模型配置为使用 localMysql 连接 则 local
  • 将远程 github 存储库的更改合并到本地存储库

    我前段时间在 github 上分叉了一个存储库 做了一个小更改并将更改推回我的 github 分叉 此后原始存储库已更改 我想将原始存储库中的更改合并到我的分支中 我对 git 和 github 都很陌生 我需要具体的命令来操作 git r
  • 为什么 apt-get 功能在 Mac OS X v10.9 (Mavericks) 的终端中不起作用?

    我当时正在看this 正如您所看到的 我被告知要输入的第一个命令是 sudo apt get install python setuptools 当我这样做时 它输出 sudo apt get command not found 我不知道为
  • -I GCC 中的标志(Linux)

    我找到了一个带有 Makefile 的源文件包 我浏览了它 在 CFLAG 变量中 有一个 FLAG I 我在网上搜索过 但找不到它实际的作用 它与 C 文件中包含的库文件有关吗 stdio h unistd h pthread h 请指出
  • Javascript 获取对象属性名称

    我传递了以下对象 var myVar typeA option1 one option2 two 我希望能够拔出钥匙typeA从上面的结构来看 这个值每次都会改变 所以下次它可能会改变typeB 所以我想知道是否有办法让我做类似以下伪代码的
  • LibGDX 中的 AssetManager

    我正在尝试使用AssetManagerLibGDX 中的类 我了解它是如何工作的 但我正在尝试实现一个加载屏幕 我已遵循AssetManagerTest java file here 但我很难弄清楚如何让它正常工作 有人能指出我正确的方向吗
  • 是否可以更改 ToolStripMenuItem 工具提示字体?

    我有一个动态填充的 ContextMenuStrip 其中每个 ToolStripMenuItem 都有一个工具提示的格式化文本 而且 为了使该文本对用户有意义 我必须使用等宽字体 例如 Courier New 默认字体是常规的非等宽字体
  • 当字段为空时,远程属性不会触发

    我在用着RemoteAttribute对于我表单上的特定字段 其目的并不重要 重要的是 每当字段发生更改时 它都需要触发验证操作 这对我来说工作得很好 除非该字段更改为空白 我用谷歌搜索过这个但没有找到结果 有谁知道如果RemoteAttr
  • 带有 lapply 的内部 S3 泛型

    我有一个 S3 通用函数 我希望将其作为包的内部部分 如果可能的话我宁愿不导出它 一个有趣的缺点是 似乎lapply无法找到或使用正确的 S3 方法 有谁知道这种行为背后的原因 下面是一个可重现的示例 其中涉及从我的 github 安装虚拟
  • 在导航控制器中单击后退按钮时会调用哪个方法?

    我想在导航控制器中单击后退按钮时保存数据库 所以我会在方法中插入代码 在导航控制器中单击后退按钮时会调用什么方法 要执行您要求的操作 请查看UINavigationControllerDelegate协议 即方法 void navigati
  • Scala 的 Actor 是否有非阻塞 IO 开源实现?

    我需要处理相当大的文件 500Meg zip 文件 Scala 的 actor 是否有非阻塞 IO 开源实现 如果我的问题是正确的 那么您需要文件的非阻塞 IO 那么我有坏消息要告诉你 NIO Java6 中的 Java NIO 在处理文件
  • 如何确定两组纬度/经度坐标之间的距离?

    我正在尝试写一些东西来确定纬度 经度坐标组之间的距离 我正在使用我在上面找到的以下代码这个网站 public static double distance double lat1 double lon1 double lat2 double