问题标签 [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 - 用于计算半正弦距离的 MySQL 函数
全部。
我想创建一个 mysql 函数来计算两个地理代码之间的半正弦距离。
但是我遇到了这样的错误;
1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 4 行的 '' 附近使用正确的语法
有人有想法吗?
先感谢您。
mysql - 使用交叉连接和 Hversine 公式在 MySQL 地理搜索中重复记录
我正在尝试完成此Google 教程的修改
我编写了这个 SQL 来使用位置“名称”查询位置表。给定位置的名称,查询返回附近的比萨餐厅。为了做到这一点,我交叉加入了我的餐厅位置表,标题为“标记”,并使用 Haversine 公式计算距离。
查询返回预期结果,但如果兴趣点在指定区域之外,在本例中为“默特尔海滩”,我每次匹配都会得到重复记录。这是因为 CROSS JOIN 很容易通过 DISTINCT 选择来修复。但是“lng”和“lat”字段是 FLOAT 类型,因此距离计算永远不会相同,即使对于重复记录也是如此。
这是回报的一个子集:
3901 North Kings Highway Suite 1, 默特尔比奇, SC | 芝加哥比萨公司以东| 33.716099 -78.855583 | 4.0285562196955125
1706 S Kings Hwy # A, 默特尔比奇, SC | 达美乐披萨:默特尔比奇 | 33.674881 | -78.905144 | 4.0285562196955125
82 Wentworth St, 查尔斯顿, SC | 安多利尼斯披萨 | 2.782330 | -79.934235 | 85.68177495224947
82 Wentworth St, 查尔斯顿, SC | 安多利尼斯披萨 | 32.782330 | -79.934235 | 89.71000040441085
114 Jungle Rd, 埃迪斯托岛, SC | Edisto Beach Inc 的雄鹿披萨 | 32.503971 -80.297951 | 114.22243529200529
114 Jungle Rd, 埃迪斯托岛, SC | Edisto Beach Inc 的雄鹿披萨 | 32.503971 -80.297951 | 118.2509427998286"
关于从这里去哪里有什么建议吗?
matlab - 如何在 Matlab 中创建加权邻接矩阵
我有以下格式的数据集:
从这里我需要生成一个 LocID-LocID 无向图。为此,我需要以下格式的加权矩阵。
由于用户 u1 存在于位置 l1、l2 和 l3,因此我将它们视为图中的可见边。因此,存在从 l1 -> l2 和 l2-> l3 的边缘。从给定的示例中,存在 4 条边。
这里两个 LocID 之间的每条边的权重是根据给定的纬度和经度信息计算的。比如,d(l1,l2) = LocID-1 和 LocID-1 之间的距离 = (lt1,lg1) 和 (lt2,lg2) 之间的距离
距离计算可以通过使用半正弦公式来完成。所以,这不是问题。我需要在 matlab 中执行此任务。谁能帮帮我....提前谢谢....
php - 计算位置之间的距离
我使用 hasrshine 公式计算位置之间的距离。
它正常工作,但对于某些坐标值,它给出NAN
.
它给出NAN
的值是
distance - Haversine vs Equirectangular 逼近
所以,我需要计算两点之间的距离(经纬对)。我在Movable Type Scripts中阅读了有关 Haversine 公式和 Equirectangular approximation 的内容。
由于我只想计算短距离(小于 4 公里),Equirectangular 公式是一个很好的近似值吗?
另外,我在 Google Developers 文档中阅读了 MySQL 数据库中的 lat-lon 存储,他们实现了像这样的 Haversine 公式:
我的最后一个问题是,过滤 sql 查询中的点(如示例中)和通过代码过滤它们之间是否存在很大的性能差异?
mysql - 根据MySQL中的半径合并边界框中的长/纬度点
这是我基本上想要实现的图片:
所以正如标题所说,我想合并长/纬度点,它们的半径(例如 25 公里)在长/纬度点的边界框内触摸。
这是我非常简单的数据库结构:
到目前为止,这是我的查询:
所以我的查询只是合并一个假想的边界框内的所有点,而不考虑半径。
我知道我可能不得不使用 Haversine 公式,但我在数学和 MySQL 方面很糟糕,这让事情变得有点困难。事实上,如果我只有一个半径,我最终可以合并点,但每个点都有自己的半径,我正在努力。
这是针对学生项目的,任何帮助都会非常感激。
参考:
-我对 SQL Fiddle 的查询:http ://sqlfiddle.com/#!2/3a42b/2 (在评论中包含一个用于 Haversine 公式的 SQL Fiddle 示例)
- MySQL 查询中的 Haversine 公式:(用于检查给定半径内的所有点)
arduino-ide - Arduino上的Haversine公式实现
我正在使用 GPS 和 Arduino 创建地理围栏。我想实现Haversine公式来找到两点之间的距离,以便用半径计算它。问题是我发现很难在 Arduino IDE 上实现 Haversine 公式,我是 Arduino 的初学者。
如何在 Arduino IDE 上实现上述公式?
javascript - Javascript Haversine 错误
因此,我使用 Haversine 公式继续查找从 Google 地图检索到的路线沿线的位置,如下所示,使用英里。
但是当它使用点(例如)36.64756、-97.34593(在威奇托、堪萨斯州和达拉斯之间的路径上)和 39.933321、-91.409415(在伊利诺伊州昆西的一个位置)时,我的距离不到 20 英里。显然这是不正确的。我无法用其他值复制错误 - 我偶然发生了这个。
这是toRad原型,顺便说一句-
我最初的猜测是某处的浮点溢出,但我无法使用 toFixed 隔离或缓解它。有人有想法么?
php - 在多个邮政编码 PHP 和 MySql 上按距离排序
嗨朋友我需要这个逻辑
问题定义的帮助:
有4张桌子:
- 项目
- 项目名称
- 项目编号
- 邮政编码
- 小贩
- 供应商 ID
- 供应商名称
- 电话
- 服务区距离
- 供应商服务区
- 供应商 ID
- 服务区邮政编码
- 邮政编码详细信息
- 邮政编码
- 纬度
- 经度
- 每个项目都有一个邮政编码
- 供应商可以有多个服务区邮政编码
当供应商登录时,我将获得供应商服务区域内的所有项目。
例如:如果供应商在他的服务区有两个邮政编码 22032、10031,并且他的服务区距离是 20 英里,那么这些服务区内的所有项目都在 20 英里左右。
我正在计算项目邮政编码和供应商邮政编码之间的距离,并在列中显示最小距离
例如:项目邮政编码 22032 和供应商邮政编码是 22031 和 22040:
22032 到 22031 = 3.01 英里
22032 到 22040 = 7.98 英里
然后距离 = 3.01
问题:现在客户想要按距离排序
我的尝试:
- 我尝试使用 PHP 数组和对象来执行此操作,但使用大数据会减慢进程
- 我试图从MYSQL距离计算haversine公式计算它,但无法弄清楚
- 我试图在单独的表格中映射距离,但邮政编码太多
请提出任何可以花费更少时间的逻辑。
java - Java中的Haversine公式产生不正确的结果
我正在尝试使用Haversine formula
在维基百科上给出的这个实现进行试验,但这个公式没有给出预期的结果。
上述经纬度格式在需求文档中指定。
示例输入坐标如下:
在将这些值传递给 Haversine 方法之前,我将这些值转换为度数格式。如果不需要此步骤,请纠正我。
我正在使用下面的公式将度数格式转换为十进制度数格式:
所以新坐标变成
调用 hasrsine 方法变得像
这是返回值5.932071604620887E-4
为了验证这些值,我向本网站(33.994144666666664, 83.9363, 33.99415, 83.9363)
上的转换器提供了相同的输入,但它给出的结果为km。0.001
我试图在不转换为十进制度的情况下提供输入值,但是两种方法的输出也不匹配。
谁能告诉我我在这里犯了什么错误?