问题标签 [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 回答
846 浏览

mysql - Mysql递归查询/余弦球定律

我想从坐标(lat/lng)搜索最近的位置到 mysql 数据库中,我使用球面余弦定律来搜索这些地方:

其中6371为地球半径(km),111(km)为纬度1°,cos(latitude)*111(km)为经度1°,5(km)为搜索半径。

问题:我希望找到至少 8 个城市,但 5 公里的半径对于浓缩区(许多城市)来说很小但很快,所以如果我search radius对浓缩区使用太大,查询会很慢(很多结果:排序),但是对于非浓缩版search radius来说太小了,至少找不到 8 个城市...

如果找到的城市数量<8(仅使用mysql) ,我如何进行递归查询,自动增加search radius(x2)?

谢谢

0 投票
1 回答
1206 浏览

xml - 谷歌地图 API 地理编码找到附近的 KML

我看到很多人在 Google 地图讨论组上询问这个问题以进行富有成效的讨论,所以我想我会在这里尝试。

目标:在 Google Maps API 中制作可搜索的地图,当输入用户地址时,该地图可以从数据集中返回“附近”结果。

到目前为止,我的方法是:我首先将我的数据点放入 KML,因为它既 a) 很容易被 Google Maps API 使用,b) 又是一个 XML 文档,而且很容易遍历。据我了解,Geocode 方法是 API 的任何类型用户地理信息的基本入口点。我想我必须让 Geocode 返回 Lat 和 Long,然后使用 Haversine 公式计算该点与 KML 文件中每个 Placemark 之间的距离,最后显示该点与用户的 Lat 和 Long 的最短距离。

我已经看到了一些运行 Haversine 计算的 Javascript,但不清楚如何让 API 读取 KML 文件中的所有数据点。Google 提供了一个有用的文档,介绍如何使用 PHP 和 MySQL db 执行此操作,但对 KML 情况没有太大帮助。

那么:如何让 Google Maps API 搜索和解析 KML?

谢谢!

0 投票
5 回答
6266 浏览

mysql - 如何使用带有 MySQL 的 Haversine 公式测量距离?

我从 Google Maps Reverse-Geocoding API 获得纬度和经度,然后我需要这样的东西:

更新 我不能让这个工作

0 投票
10 回答
180784 浏览

python - Python中的Haversine公式(两个GPS点之间的方位和距离)

问题

我想知道如何获得2 个 GPS 点之间的距离和方位。我研究了haversine公式。有人告诉我,我也可以使用相同的数据找到方位。

编辑

一切正常,但轴承还不能正常工作。轴承输出负值,但应在 0 - 360 度之间。设定的数据应该是水平方向的96.02166666666666 ,并且是:

这是我的新代码:

0 投票
2 回答
3735 浏览

geolocation - 我应该使用什么地球半径来计算两极附近的距离?

我正在监视一个 GPS 装置,它正在从加拿大的 Cape Discovery 到北极的途中。我需要跟踪每天行驶的距离和剩余距离,所以我使用Haversine Formula,我被告知对于较小的距离非常准确。

我的数学真的很差,但我偷偷怀疑精度在很大程度上取决于地球的半径,并且由于宇宙决定将地球制成扁球体,因此我可以选择地球半径的近似值从中选择。

由于我正在监测非常靠近北极的坐标,我想知道是否有人知道哪个半径将提供最准确的信息。

  • 平均赤道:6,378.1370km
  • 平均极地:6,356.7523
  • 真实/体积:6,371km
  • 经向:6367km

或者任何其他人都知道的半径?

我希望一些数学或制图高手可能知道这个问题的答案。

0 投票
2 回答
4118 浏览

sql - Haversine 公式使用 SQL 服务器查找最近的地点 - vb.net

我正在从表单中获取邮政编码。然后,我可以将此邮政编码转换为 lng、lat 坐标,因为我已将它们存储在表格中。

SELECT lng, lat from postcodeLngLat WHERE postcode = 'CV1'

我有另一张桌子,它存储了一系列场地的 lng、lat。

SELECT v.lat, v.lng, v.name, p.lat, p.lng, p.postcode, 'HAVERSINE' AS distance FROM venuepostcodes v, postcodeLngLat p WHERE p.outcode = 'CB6' ORDER BY distance

我要做的是创建一个数据网格,显示每个场地与邮政编码的距离(在本例中为 CV1)。我知道 Haversine 公式应该做我想要实现的目标,但我不知道应该从哪里开始将它合并到我的查询中。我认为公式需要放在我'HAVERSINE'在上面的查询中输入的位置。

有任何想法吗?

编辑

SELECT o.outcode AS lead_postcode, v.venue_name, 6371.0E * ( 2.0E *asin(case when 1.0E < (sqrt(square(sin(((RADIANS(CAST(o.lat AS FLOAT)))-(RADIANS(CAST(v.lat AS FLOAT))))/2.0E)) + (cos(RADIANS(CAST(v.lat AS FLOAT))) * cos(RADIANS(CAST(o.lat AS FLOAT))) * square(sin(((RADIANS(CAST(o.lng AS FLOAT)))-(RADIANS(CAST(v.lng AS FLOAT))))/2.0E))))) then 1.0E else (sqrt(square(sin(((RADIANS(CAST(o.lat AS FLOAT)))-(RADIANS(CAST(v.lat AS FLOAT))))/2.0E)) + (cos(RADIANS(CAST(v.lat AS FLOAT))) * cos(RADIANS(CAST(o.lat AS FLOAT))) * square(sin(((RADIANS(CAST(o.lng AS FLOAT)))-(RADIANS(CAST(v.lng AS FLOAT))))/2.0E))))) end )) AS distance FROM venuepostcodes v, outcodepostcodes o WHERE o.outcode = 'CB6' ORDER BY distance

0 投票
3 回答
933 浏览

iphone - 将 SQLite 的 Haversine 函数实现到 iPhone 项目中

所以经过一个小时的研究,我发现大多数人似乎都同意http://www.thissuchiknow.co.uk/?p=71上的函数是在 iPhone 中实现 Haversine 函数的方法当您有一个充满纬度和经度的数据库时,按距离排序结果的项目。不过,如何将它实际包含在您的项目中似乎没有什么帮助,而且我自己也没有运气。

无论我将函数添加到 ViewController.m 文件的哪个位置,我都会收到错误消息expected ')' before '*' token。有些人提到你需要放入static void distanceFunc(sqlite3_context *context, int argc, sqlite3_value **argv);你的 .h 文件,但我也有同样的错误。

谁能提供一个在 iPhone 项目中包含此功能的简短示例?

0 投票
4 回答
4629 浏览

c - C、计算两个GPS位置之间的距离?

如果我有两个 GPS 位置,例如 51.507222、-0.1275 和 48.856667、2.350833,我可以使用什么公式来计算两者之间的距离?我听说过很多关于半正弦公式的信息,但找不到任何关于它的信息,或者如何将它应用到 C 中。

我已经编写了以下代码,但是,它非常不准确。有人知道为什么吗?我想不通。问题来自函数本身,但我不知道它是什么。

0 投票
2 回答
2294 浏览

android - 从 2 点计算速度

我知道这个问题被问了很多,但还没有让我满意。我正在尝试使用 Android 设备的 GPS 来计算速度。很多人的回答似乎是简单地使用 Location 对象的 getSpeed() 函数。但据我了解,getSpeed() 仅适用于 GPS 接收器芯片中内置速度传感器的某些设备。无论如何,我都希望我的应用程序能够正常工作,因此我使用了以下半正弦公式:

现在我想做的是弄清楚如何从中计算速度。任何人都可以帮助我吗?

0 投票
2 回答
1159 浏览

python - sqlalchemy 中的 Haversine 公式

我的代码中有以下几行

使用它时出现以下错误

解决此问题的正确方法是什么?