问题标签 [geographic-distance]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4256 浏览

r - 在两组日期点之间找到最近邻

我有 2 组点,set1并且set2. 两组点都有与该点相关的数据。set1 中的点是“短暂的”,仅在给定日期存在。set2 中的点是“永久的”,在给定日期构造,然后在该日期之后永远存在。

这是我的问题:对于 set1(临时)中的每个点,找到在 set1 发生之前构建的 set2(永久)中最近点的距离。例如,set1 中的第一个点发生在 2011-03-18:

所以我想找到 set2 中在 2011-03-18 之前构建的最近点:

额外的皱纹是这些是纬度/经度点,所以我必须计算沿地球表面的距离。R 包字段提供了一个方便的函数来执行此操作:

Inf我的问题是,如果 set2 中的点(距离矩阵的列)是在 set1 中的点(距离矩阵的行)之后构造的,我该如何调整这个矩阵中的距离?

0 投票
7 回答
11238 浏览

python - 用于存储和查询地理坐标的 Python 模块

是否有一个 Python 模块,我可以在其中创建具有地理位置坐标(纬度和经度)的对象,并在给定坐标的 5 公里距离(即半径)内查询所有对象?

我一直在尝试将纬度和经度存储为字典中的键(因为它们是由键索引的)并使用一些距离查找算法来查询它们。但这感觉就像一个可怕的黑客攻击。

本质上类似于 PostGIS for PostgreSQL,但都在我的 Python 应用程序的内存中。

0 投票
1 回答
4098 浏览

ios - 在 iOS 上获取相对于地理北方的俯仰、滚动和偏航?

我看到我可以从设备中检索CMAttitude,并从中读取我需要的 3 个值(俯仰、滚动和偏航)。据我了解,这个 CMAttitude 对象由 CoreMotion 管理,CoreMotion 是一个传感器融合管理器,用于计算来自指南针、陀螺仪和加速度计的正确结果(在 Android 上是 SensorManager 类)。

所以我的问题是:

  1. 这些值(俯仰、滚动和偏航)是否与磁北和重力相关?

  2. 如果以上是正确的,我该如何修改它以给出相对于地理北方的结果?

  3. 如果设备(例如 iPhone 3GS)没有陀螺仪,我是否必须告诉经理或者我可以告诉它根据它拥有的传感器给我设备的姿态(acc + gyro + compas acc + 指南针

0 投票
2 回答
2466 浏览

c# - wgs​​ 点到 wgs 定义的线段的距离

我进行了搜索,但找不到完整的答案。如果可能的话,在 C# 中。我需要 WGS 点和球体上 WGS 点定义的线段之间的最短距离(准确地说是地球)。

编辑:也许插图会有所帮助

在此处输入图像描述

请注意,这是一个理想的例子。“点”可以是球体表面的任何地方,也可以是线段的起点。显然,我不是在寻找穿过球体的距离。数学不是我的强项,所以我不理解normalizeto cartesian。也许我还应该注意路径 AB 是最短的,而距离?也是最短的。

0 投票
2 回答
1327 浏览

php - 从mysql数据库中选择最近地理位置的最快方法是什么?

我在 MySQL 数据库中有一个表,其中包含地理坐标和其他有关地点的信息。表中的每一行代表一个地理位置,并具有如下坐标:纬度 = 45.05235 和经度 = 8.02354,这是欧洲某个地方。

给定一些输入地理坐标(相同格式),我需要从该表中选择最近的地方,或某个半径内的最近的地方。

我已经在使用索引,但是我想加快这个过程,因为这些函数被多次使用。

如果我可以通过一个查询直接选择某个半径内最近的一个或多个地方,这可能会有所帮助。当然,任何其他解决方案也非常受欢迎。

我制作了一个可以获取最近位置的函数(正在工作但速度很慢):

这是在一定半径内选择最近地点的函数(工作但速度慢):

0 投票
1 回答
347 浏览

sql-server - SQL Server 地理中的错误?

有人可以确认这是一个错误还是我做错了什么?

我有这个存储过程(SQL Server 2008)

位置是数据库中的地理数据类型

我在数据库中有这个地址

然后运行这个:

如果你在第一种情况下去谷歌地图,这些坐标之间大约有 4 公里,第二次比较似乎没问题。

为什么第一个这么错?它是 SQL Server 中的错误吗?

提前致谢。吉列尔莫。

0 投票
1 回答
112 浏览

c# - 获得不正确的纬度和经度以获取大距离

我正在使用以下功能。

这里的半径是距离。

现在的问题是当我计算短距离时,例如几百公里,它工作得很好。但是对于大距离来说,比如 11,000 公里,它给出了正确的经度。请不要我只沿纬度或经度移动,因此其中一个在任何情况下都不会改变。在移动纬度时,我得到了正确的答案,但经度值并没有更接近。如果有任何不清楚的地方,请发表评论。

0 投票
3 回答
2508 浏览

c# - SQL Server STDistance 的 .NET 等效项

我可以使用以下 SQL 来计算固定位置与数据库中场地位置之间的距离。

请注意,返回的距离以英里为单位,并且 Location 字段是地理类型。

我想知道 .NET 中的 this 等效项是什么,它将返回相同的值。此方法将具有以下签名:

我知道我可以在 .NET 中调用数据库方法,但我不想这样做。我希望有一个公式来计算距离。谢谢

0 投票
0 回答
515 浏览

geometry - 以给定半径为中心点计算地球上的正方形边界

我正在尝试计算具有特定半径的正方形的边界,并且当正方形的中心已知时(经度,纬度)。但我遇到了麻烦。

我尝试从这里使用 hasrsine 公式:

半正弦公式

但是当半径很大时,我会遇到麻烦。

目前找到1)。我使用的以弧度表示的纬度增量:

  • radiusInMeters / EARTH_RADIUS_METERS

2)。我使用的弧度经度增量:

  • 2.0 * | arcsin( |sin(radiusInMeters/(EARTH_RADIUS_METERS*2.0)) / |cos(latitudeStart)| | ) |

我从haversine公式得到的这些公式。

请有人指出我的确切通用计算公式,这对我的情况来说对大小距离都有好处。

另外,当半径超过经度-180˚/180˚或纬度-90˚/90˚时,应该如何处理?

更新

一些澄清。假设我停留在坐标为 (lon, lat) 的某个特定点,其中 lon 是 -113˚ 和 lat 50˚。

我想从数据库中查询某个感兴趣半径内的点。为此,我需要计算“正方形”的边界。(然后过滤掉不在有趣范围内的东西)。上面的公式在小距离上运行良好(假设'直到 100 公里(63 英里)。但是我从赤道点到两极的距离越多,我得到的舍入误差就越多。)

提前致谢

0 投票
2 回答
468 浏览

mysql - DBGrid - 如何将相邻两行中的列值之间的差异显示为另一列?

假设我每分钟左右记录一次汽车的纬度和经度,每次都在表格中添加一行。

我想要一个有 4 列的数据库网格

  1. 纬度
  2. 经度
  3. 自上次测量以来的距离
  4. 当前街道地址,如果知道的话

第 4 点,我可以尝试从 Google 地图中检索,但我得到一个文本或空白,所以让我们忽略它。

我如何获得#3?我应该在我的应用程序或 MySql 中计算它(使用存储过程还是只是一个复杂的 SELECT)?

无论哪个答案,有人可以提供一些示例代码或示例链接吗?Google 今天不是我的朋友 :-(