问题标签 [geosphere]

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 回答
235 浏览

mysql - MySQL 根据距离过滤数据并计算该距离

我有一个用例,用户将他的位置(纬度和经度)传递到后端,我必须获取该位置并同时找到他所在位置的英里半径区域内的所有餐厅,我必须给出从他的位置到每家餐厅的距离也是如此。

我的餐桌。

要查找与用户提供的坐标的英里半径匹配的记录,我可以使用此查询

这也是我从stackoverflow问题中得到的,它有效。现在我的问题是如何获得每个匹配结果的用户位置与餐厅位置之间的距离?

我希望我的问题对你来说很清楚。

用户将通过他当前的位置。根据该位置,我需要过滤半径 30 英里范围内的餐厅。同时,我也不得不说餐厅与他当前位置的距离。

我的预期输出将是这样的。您在 30 英里范围内有两家餐厅。对于肯德基,您有 12 英里的距离。对于麦当劳,您有 29 英里的距离。

如何修改该查询以实现我的要求?

0 投票
1 回答
33 浏览

r - 整理凌乱的坐标以用于测量

我有一些相当混乱的度数,十进制分钟坐标(其来源不受我控制),格式如下(见下文)。我试图最终计算出点之间的距离。

因为它们是(来自measurements包)的一种相当不友好的格式:

最终

我想我需要使用 gsub( 把它们变成一种友好的格式,我希望它们是

我一直在和 gusb 搞混(整个早上它都打败了我,任何帮助都会很棒!!

0 投票
2 回答
483 浏览

r - 从 data.frame 计算值之间的距离时出错

我正在尝试计算作为 a 子集的不同点之间的距离data.frame

我尝试使用的方法distHaversine来自 library geosphere。我在 var 中有我的数据st并尝试使用以下函数:

其中每一行st是一个新地方的条目,第 3 列是经度,第 2 列是纬度。以这种方式使用该函数会给我以下错误:

读取错误类似于:

听起来它应该可以解决问题,但这只会给 med 另一个错误:

如果我手动将 lat 和 long 添加到函数中,例如:

它工作并返回0

st[1,c(3,2)]和的输出st[2,c(3,2)]如下:

输出dput(st[1:2, 2:3])

0 投票
2 回答
314 浏览

r - 在列而不是矩阵中获取 distm 结果

我正在尝试计算两组不同位置(总共 145 个)之间的距离,但输出是一个矩阵,而不是一列值。

我的数据框如下所示:

我使用 distm 进行计算,但输出是一个矩阵,而不是一个具有 145 个值的向量(每对坐标组一个)。

编辑:

看起来 diag(dist) 可以解决问题。

0 投票
1 回答
83 浏览

r - 快速、正确的距离计算

我有一个大型数据框(> 800 万行),其中包含对个人和不同站点的观察。我有兴趣查看这些站点与几个关键位置的接近程度(2014 年有 1 个位置,2015 年有 2 个位置)。

为了最大限度地减少计算次数(并加快计算速度),我使用 dplyr 将所有已知位置折叠到每年只有一个代表性站点,然后尝试使用 distGeo 函数计算年份匹配时的距离.

仅运行这部分大约需要 30 分钟,结果是每个 2014 站点的距离为 740.1656 公里。如何修复此代码以提供正确的距离,并在理想情况下加快计算速度?

编辑:

如下所示,这是解决方案:

0 投票
1 回答
79 浏览

r - 如何修复计算两个坐标之间距离的函数

我目前有一列坐标(CHR)和经度和纬度(NUM)。我想创建一个函数,允许找到每两个坐标之间的距离。比如第一和第二坐标之间的距离,第二和第三坐标,依此类推。我已经尝试了两种方法来创建它。

我收到错误消息:

我应该如何解决这个问题?或者有没有其他方法可以在 R 中创建它?谢谢你。

0 投票
2 回答
354 浏览

r - 按最小地理空间距离 (R) 匹配两个数据集

我有以下两个数据集:

我想合并housesstations在一起,使得结果station_number是最接近相应的house_number.

这个问题非常相似,但我不确定他们是否正在使用纬度和经度,而且我不知道在处理经度和纬度时如何计算距离(这就是为什么我更喜欢简单地使用distmfromgeosphere包裹)。

我从未使用过外部函数。如果上述问题的答案有效,我该如何调整答案以使用distm函数而不是sqrt函数?

0 投票
1 回答
148 浏览

r - 在for循环中循环以计算R中2个数据集之间的地理空间距离

我有一个data.table 957 地理编码。我想将它与另一个具有 317 个地理编码的数据集相匹配。匹配条件是地理空间接近度。我想将第一个数据集中的每个观察结果与第二个数据集中的观察结果相匹配,以使两个观察结果之间的距离为 5000 米或更小。

我的数据如下所示:

我正在使用distm函数 fromlibrary(geosphere)来计算距离。

我想解决这个问题的方法是while循环。这个想法是从 中获取第一个观测值muni并测量到第一个观测值的距离stations。如果距离为 5000 米或更短,则将 中的第一个观测值分配给station_number中的第station一个观测值muni。如果距离大于 5000,则尝试下一次观察,muni直到距离小于或等于 5000 米。

本质上,它是一个循环,可以在stations5000 米或更接近muni.

这是一个初步的尝试:

我可以说这不起作用,因为在运行此循环后,“muni”中的行似乎都没有被覆盖for (i in 1:3)。我想我的循环中有一个错误忽略了station_number :=anddistance :=部分。

我希望这个循环会覆盖muni整个列,这样所有的列都有一个station_number.

0 投票
3 回答
106 浏览

r - 计算不同日期范围内的平均日长

我正在使用 geosphere 包中的 daylength 函数来计算两点之间位置的白天长度。根据具体的个人和地点,我平均日长的天数会有所不同。

虽然我的函数在我对变量进行硬编码(即,为 lat 和 date 提供特定值)时工作,但当我提供值向量并收到以下错误和警告消息时,它不起作用:

我知道这个错误与我的日长计算有关,因为代码的其他部分在省略时运行良好。

我的代码和数据子集(即前 25 个观察值):

0 投票
2 回答
135 浏览

r - 在 R 中处理坐标和庞大的数据集

我在两个包含个人和手机信号塔坐标的数据集上有点挣扎:

  • 第一个包含 9,459 个人的数据集,包含 1,214 个变量,包括他们的纬度和经度(以度为单位)。
  • 第二个数据集包含 31,176 个蜂窝塔,包含 4 个变量,包括它们的纬度和经度(度数)和范围(米)。

我想确定一个人是否在至少一个蜂窝塔的范围内,如果是的话,创建一个等于 1 的虚拟对象。

但是,由于数据集的大小,我无法将它们与交叉连接命令合并。我尝试使用geosphere带有以下命令的包:

distm(c(df1$longitude, df2$latitude), c(df2$longitude, df2$latitude), fun= distHaversine)

不幸的是,它不起作用,因为两个数据集的大小不同。知道如何解决这个问题吗?