问题标签 [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.
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:
mysql - 使用子字符串函数的结果来计算多列的值
我正在尝试运行以找到最近的点和纬度。哪个工作正常是我在我的数据库中存储了单独的值,但是我有一个管道字符串,我可以用子字符串索引拆分它。但是,当我尝试在我的选择查询中组合这些功能时,我并没有得到任何快乐。
任何人都可以解释一下吗?
php - 用haversine和float计算距离......有点工作
我正在使用 hasrsine 查询来提取最接近移动应用程序提供的纬度/经度的位置。
查询如下所示:
这工作得很好,我得到的正是我应该得到的位置。
问题在于将 dist_x 转换为用户可读的内容。现在,假设 dist_x 读取为:0.00996273036944(floatval 和字符串显示相同,因此可以正确转换)
由于查询是在 1 英里范围内搜索,因此我试图将其转换为英尺,因此我将 dist_x 除以 5280。
我得到的是 $distance = 1.88688075179E-6
我究竟做错了什么?
visual-c++ - 使用Haversine公式计算两个城市的距离-如何处理负经度
我将使用 Haversine 公式找到两个城市之间的距离。下面是VC++中的代码。
但我找不到点 (18.567367, -68.363431) 和 (33.636719,-84.428067) [第一个值是纬度,第二个是经度] 之间的距离。它给出了类似-1.#IND的东西。
你能告诉我如何处理这个问题吗?
下面是代码:
预先感谢....!!
mysql - 具有分组、过程和“HAVING”的 MySQL 查询
我目前有这个查询:
如您所见,它使用称为 GEODIST(Haversine 公式,以 KM 为单位返回坐标之间的距离)的 MySQL 过程,并将结果按id_prod
.
该表可能包含每个产品的多个报价 ( id_prod
)。目标是检索报价列表,没有重复的产品,因此返回该报价的最佳(最便宜、最接近)案例。
前面的查询似乎做得很好,但为了进一步优化,我想使用HAVING
(不必为每行运行两次 Haversine)。这是我的第一个想法:
遗憾的是,此查询不会返回与以前相同的结果。
不使用MIN()
,结果不正确(仅返回一行)。使用MIN()
(如在最后一个查询中),行信息不正确(即没有返回预期的行,导致结果在列表中显示错误的商店名称和价格)。
欢迎任何有关此目标(和其他建议)的最佳查询的提示或答案:D
php - 通过 PHP/PDO 从 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 个结果。
javascript - 对多个 JavaScript 数组进行排序
我在 Haversine 公式的帮助下创建了这个脚本,问题是它一直将我引导到阵列上的第一个位置,无论我交换它们多少次。有任何想法吗?
php - PHP & MySQL 地理距离计算
我有一个工作 PHP 函数,它接受纬度/经度坐标和以英里为单位的距离,然后在 MySQL 邮政编码/经纬度对(40,000 多行)表中逐行测试每个邮政编码/经纬度行是否在规定的距离内。
我知道这种方法效率非常低,我想在 SQL 查询中而不是 PHP 中进行所有的三角函数和距离计算。有谁可以帮我离开这里吗?我觉得我已经尝试了一切,但我无法正确获取 SQL 查询。任何帮助将不胜感激!
现有的PHP函数:
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 字符串?