问题标签 [haversine]

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 投票
1 回答
604 浏览

mysql - hasrsine distance - MySQL 和 PHP 为相同的公式返回不同的结果

距离(直线)

来自: (lat) 48.73233 (long) 2.36618

至: lat() 48.84647 (long) 2.41026

等于一些:13096.16 米

如果我使用 PHP 公式,我会得到正确的结果。

但是当我将相同的 PHP 公式直接翻译成 MySQL 查询时 - 我得到 5904.2757 等。

这是代码:

php:

mysql:

0 投票
2 回答
462 浏览

mysql - 使用子字符串函数的结果来计算多列的值

我正在尝试运行以找到最近的点和纬度。哪个工作正常是我在我的数据库中存储了单独的值,但是我有一个管道字符串,我可以用子字符串索引拆分它。但是,当我尝试在我的选择查询中组合这些功能时,我并没有得到任何快乐。

任何人都可以解释一下吗?

0 投票
2 回答
189 浏览

php - 用haversine和float计算距离......有点工作

我正在使用 hasrsine 查询来提取最接近移动应用程序提供的纬度/经度的位置。

查询如下所示:

这工作得很好,我得到的正是我应该得到的位置。

问题在于将 dist_x 转换为用户可读的内容。现在,假设 dist_x 读取为:0.00996273036944(floatval 和字符串显示相同,因此可以正确转换)

由于查询是在 1 英里范围内搜索,因此我试图将其转换为英尺,因此我将 dist_x 除以 5280。

我得到的是 $distance = 1.88688075179E-6

我究竟做错了什么?

0 投票
1 回答
1595 浏览

visual-c++ - 使用Haversine公式计算两个城市的距离-如何处理负经度

我将使用 Haversine 公式找到两个城市之间的距离。下面是VC++中的代码。

但我找不到点 (18.567367, -68.363431) 和 (33.636719,-84.428067) [第一个值是纬度,第二个是经度] 之间的距离。它给出了类似-1.#IND的东西。

你能告诉我如何处理这个问题吗?

下面是代码:

预先感谢....!!

0 投票
2 回答
255 浏览

mysql - 具有分组、过程和“HAVING”的 MySQL 查询

我目前有这个查询:

如您所见,它使用称为 GEODIST(Haversine 公式,以 KM 为单位返回坐标之间的距离)的 MySQL 过程,并将结果按id_prod.

该表可能包含每个产品的多个报价 ( id_prod)。目标是检索报价列表,没有重复的产品,因此返回该报价的最佳(最便宜、最接近)案例。

前面的查询似乎做得很好,但为了进一步优化,我想使用HAVING(不必为每行运行两次 Haversine)。这是我的第一个想法:

遗憾的是,此查询不会返回与以前相同的结果。

不使用MIN(),结果不正确(仅返回一行)。使用MIN()(如在最后一个查询中),行信息不正确(即没有返回预期的行,导致结果在列表中显示错误的商店名称和价格)。

欢迎任何有关此目标(和其他建议)的最佳查询的提示或答案:D

0 投票
0 回答
390 浏览

vector - 两个地理位置之间的方向向量

我正在构建一个 Android AR-App(是的,另一个),但我更感兴趣的是理解它背后的数学而不是使用框架(知道这个这个)。

给定位置 (lat1,long1) 和 (lat2,long2) 我正在搜索从 Location1 到 Location2 的方向向量 (x,y,z)。

使用这个站点,我可以计算 Location1 和 Location2 之间的距离和(初始)方位。

现在我开发了两种方法(忽略高度)

但现在我被困住和烦躁......结果不应该是一样的吗?我在哪里可以找到我的推理错误?我如何计算方向向量(或者更确切地说:为什么我的第二种方法没有工作?)?

谢谢你的帮助

0 投票
2 回答
2533 浏览

php - 通过 PHP/PDO 从 MySQL 数据库中选择不同的行

可能重复:
如何防止 PHP 中的 SQL 注入?
从 MySQL 数据库中选择不同的行

嗨,我有一个 phonegap 应用程序,当检测到路面变形(例如坑洼和减速带)时,它会存储纬度、经度、地址和严重程度。

到目前为止,通过 PHP PDO 将这些保存在数据库中根本不是问题。PDO 的设计方式是,如果被报告的坑洞已经被报告了 10 次(检查数据库中 15 米范围内的任何条目),则不会被报告(即再次插入数据库中)。此外,加载表面变形也不是问题,我使用 Haversine 公式来执行此操作,其中我传递用户的纬度和经度并获得一定距离内的值。

我遇到的问题是,由于可以报告 10 次相同的坑洼,我最终会将相同的坑洼报告给应用程序以在地图上绘制 10 次。我需要做的是,获取距离用户一定距离内的坑洞列表(使用haversine公式完成),然后从这个列表中过滤坑洞,以便我只得到不同的坑洞而不是相同的坑洞坑洼被退回10次。任何人都知道如何进行这种过滤?谁能告诉我如何在 PHP/PDO 中做到这一点,或者如果可以的话,请给我一些类似的教程?

这是我需要做的简要说明:假设我在坑洼 A 和坑洼 B 附近,并说我在数据库中有 6 个坑洼 A 的报告和 8 个坑洼 B 的报告(等等)。通过使用harsine 公式,我得到了坑洞A 和坑洞B 的所有报告值(即14 个结果)。我需要的是获得坑洼 A 报告的中点和坑洼 B 报告的中点(使用:http ://www.geomidpoint.com/calculation.html )并返回 2 个结果(一个用于 A 和一个用于 B)而不是 14 个结果。

0 投票
1 回答
343 浏览

javascript - 对多个 JavaScript 数组进行排序

我在 Haversine 公式的帮助下创建了这个脚本,问题是它一直将我引导到阵列上的第一个位置,无论我交换它们多少次。有任何想法吗?

0 投票
2 回答
2285 浏览

php - PHP & MySQL 地理距离计算

我有一个工作 PHP 函数,它接受纬度/经度坐标和以英里为单位的距离,然后在 MySQL 邮政编码/经纬度对(40,000 多行)表中逐行测试每个邮政编码/经纬度行是否在规定的距离内。

我知道这种方法效率非常低,我想在 SQL 查询中而不是 PHP 中进行所有的三角函数和距离计算。有谁可以帮我离开这里吗?我觉得我已经尝试了一切,但我无法正确获取 SQL 查询。任何帮助将不胜感激!

现有的PHP函数:

0 投票
1 回答
198 浏览

php - 查找路线起点和终点周围的标记 (LatLng)

所以,我有一个保存“路线”的数据库(即起点和终点,纬度/经度格式'StartLat','StartLng'和'EndLat',my'EndLng')。目前,人们可以通过他们的起点或终点搜索这些路线(例如“查找起点在我的 LatLng 位置 5 英里范围内的路线。”)。他们可以通过它们的起点或终点来查找它们(例如“在此标记范围内查找起点”或“在此标记范围内查找终点”)。

我目前有一个基于 Haversine 公式的 SQL 查找,这对我来说非常有效。

我想要做的是在一个 SQL 字符串中将两个查询连接在一起,以便能够“找到起点在“Place A”的“x”英里范围内且终点在“x”范围内的所有路线英里的“地方B”。

我有一种感觉,最优雅的方法是在我现有的 SQL 字符串上创建一个连接,但我一生都无法弄清楚如何做!

我当前的 SQL 字符串如下所示:

(因此,在上面的示例中,用户将搜索终点在坐标 51.5073346、-0.1276831 的 15 英里范围内的所有路线。如果他们想要找到起点在他们的 15 英里范围内的路线LatLng,然后 EndLat 和 EndLng 将被 StartLat 和 StartLng 替换)。

有没有人对 SQL 命令有足够的了解,能够帮助我计算出我需要的 SQL 字符串?