问题标签 [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 投票
9 回答
47062 浏览

javascript - 在 Javascript 中使用 Haversine 公式

我正在尝试使用 Haversine 距离公式(如在此处找到:http ://www.movable-type.co.uk/scripts/latlong.html )但我无法让它工作,请参阅以下代码

错误是:

我理解是因为它需要执行以下操作:

但是当我把它放在函数下面时,它仍然会返回相同的错误消息。如何使它使用辅助方法?或者是否有另一种方法来编写代码以使其工作?谢谢!

0 投票
1 回答
161 浏览

c++ - 计算器程序中的错误

我正在使用一个程序来计算地球表面上两个地理点之间的距离。我对 C++ 很陌生,如果我的英语不好,我深表歉意

关于如何将底部程序中的内容无错误地放入顶部程序的任何建议?

这是不工作的程序。

这是可以工作的程序,但我必须把它放在上面程序的案例 3 中。

0 投票
5 回答
28580 浏览

php - 带php的Haversine公式

我想在 php 中使用这个公式。我有一个保存了一些纬度和经度值的数据库。

我想通过输入中的某个纬度和经度值来查找从该点到数据库中每个点的所有距离(以公里为单位)。为此,我使用了 googlemaps api 上的公式:

当然在 php 中使用它我用deg2rad.The 值替换了弧度。值 37,-122 是我的输入值,而 lat,lng 是我在数据库中的值。

下面是我的代码。问题是出了点问题,但我不明白是什么。距离的值当然是错误的。

例如值: $lat= 41.9133741000 $lng= 12.5203​​944000

我有 distance="4826.9341106926" 的输出

0 投票
2 回答
821 浏览

cakephp - CakePHP 2.2.4 无法使用 HAVING 子句和计算字段对结果进行分页 - Haversine 公式

在使用 CakePHP 2.2.4 中的半正弦公式计算距离时,我试图对结果列表进行分页,但在 having 子句中的计算字段周围出现错误。

我认真地花了数周时间试图弄清楚这一点,但我做不到。我已经阅读了几篇文章,有些说我需要覆盖计数方法,有些说尝试其他但与旧版本的 Cake 相关的东西。

有人可以告诉我我需要做什么才能让这个工作吗一定有数百人试图实现同样的目标并取得成功!

我正在使用的代码是:

我不断收到的错误是:

错误:SQLSTATE [42S22]:未找到列:1054“有子句”中的未知列“距离”

请帮忙!

0 投票
1 回答
1800 浏览

php - 正弦公式 php / mysql

我正在尝试使用半径搜索获得一个通用的地理点数据库。我找到了几个关于这个主题的好教程,但最后我失败了。

主要教程在这里:http: //janmatuschek.de/LatitudeLongitudeBoundingCoordinates

SQL查询形式的基本公式是

我已经在一个简单的 PHP 测试页面中实现了这一点,如下所示:

我在这里错过了什么吗?我认为我完全遵循该方法,但我无法获得“微调”查询来返回任何结果。

0 投票
1 回答
897 浏览

distance - php中两个坐标之间的距离使用haversine

我环顾四周,看到提到了用于确定两个坐标(lat1,lng1)和(lat2,lng2)之间距离的半正弦公式。

我已经实现了这段代码:

并试图确定:

1)这是返回什么单位?(目标是英尺)

2)这个方程写对了吗?

例如,这两点之间的距离应该是多少?

(32.8940695525,-96.7926336453)和(33.0642604502,-96.8064332754)?

我从上面的公式中得到 18968.0903312。

谢谢!

0 投票
0 回答
167 浏览

php - SQLSTATE[42000] 关于 PHP/MySQL 和 CakePHP 中的 Haversine 公式

我只是在测试从 Google Developers 获取的 Haversine 公式:https ://developers.google.com/maps/articles/phpsqlsearch_v3#findnearsql

我已将代码段放入我的代码中,它给了我一个 SQL 错误。

这是我在 CakePHP 中的模型:

我从字面上复制并粘贴了代码并将其放入查询函数中。我不认为这与我的数据库或其他任何东西有关,而是 SQL 中的语法错误,但我看不到它。它有什么问题?

这是错误:

0 投票
2 回答
377 浏览

php - 如何为位置感知搜索准备现有数据库?

要求:我目前正在开发一个拥有超过 30000 条记录的应用程序。要求是基于位置/感知搜索。例如。距离我现在的位置 5 英里以内。

如何访问此服务:将从 Web 和 iOS 应用程序访问此服务。

开发平台

  • 网页:Cakephp、php 和 python
  • 数据库:MySql
  • iOS:目标-c
  • 当前使用的外部库:Google Maps Javascript Api v3

基于位置的搜索

我一直在对这个主题进行一些研究,我将为此使用Haversine Formula。但是要使 Haversine 公式有效,我需要为我的数据库中的所有记录提供反向地理代码。我曾经使用过的唯一反向地理编码服务来自谷歌,我知道他们不允许这样做,除非在他们的地图上显示结果。

注意:Geocoding API 只能与谷歌地图一起使用;禁止在未在地图上显示的情况下对结果进行地理编码。

  1. 我可以使用其他 API 或服务来对所有这些记录进行反向地理编码吗?
  2. 30000 是一个很大的数字。我显然会在一段时间内为此使用 cron 工作,但是由于这个请求将来自同一个 IP,这可能是一个问题吗?

对此的任何帮助将不胜感激。

更新 1 #

我发现这个推荐OpenStreetMap Nominatim的问题

0 投票
3 回答
237 浏览

php - PHP代码达到执行时间限制

我需要遍历一个包含地图中点的数组并检查它们之间的距离。我需要计算每个节点的 200m 和 50m 范围内有多少个节点。它适用于较小数量的值。但是,当我尝试通过它运行更多值(大约 4000 用于可扩展性测试)时,会出现一个错误,说我已经达到了 300 秒的最大执行时间。如果可能的话,它需要能够在 300 秒内至少处理这么多。

我已经阅读并发现有一种方法可以禁用/更改此限制,但我想知道是否有更简单的方法来执行以下代码,以便运行它所需的时间会减少。

索引 0 包含每个节点的唯一 ID,1 包含每个节点的纬度,索引 2 包含每个节点的经度。

错误发生在第一个循环内的第二个 for 循环中。此循环是将所选地图节点与其他节点进行比较的循环。我也在使用Haversine 公式。

0 投票
3 回答
6811 浏览

php - 数据库中的数据不是从 PHP 代码中的 MySQL 获取的

我已经实现了我的数据库,然后我通过 PHP 从数据库中检索数据。

在我的代码中,我应该按名称过滤数据,如果名称存在,我想打印数据。尽管想要的项目在表中,但没有显示任何内容。我不明白错误在哪里。只有关于数据库中位置的信息,我没有将用户的位置保存在我的数据库中。

我的代码是:

编辑:

现在,我想向用户显示最近的位置。我已经搜索并更改了代码。我在以 $userLatitude=$_GET['userLatitude']; 开头的行出现错误 . 它说这里有一个意外的 t_string 错误。我无法理解错误是什么。你能再帮忙吗?