问题标签 [geographic-distance]

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

algorithm - 重新组合地理点的算法

我正在使用地图创建应用程序,并且必须在其上放置点。问题是当点在附近时,用户看不到差异。所以,我需要重新组合点。

我收到这样的 JSON:

我需要重新组合点,最大点相差 20 像素,并与所有其他点的平均值协调。它处理的是这样的 JSON:

我只需要一个算法来帮助我构建自己的代码。

谢谢你能给我的所有帮助。

0 投票
1 回答
57 浏览

r - 如何在R中计算所有国家和美国之间的地理和语言距离

我正在尝试测量所有国家与美国之间的地理和语言距离(例如加拿大与美国、伊朗与美国之间的距离等)。

该数据可通过http://www.cepii.fr/pdf_pub/wp/2011/wp2011-25.pdf获得,但我不确定如何使用长/纬度信息和语言信息实际计算距离。

谢谢!

编辑添加照片:我想创建第四个变量,显示每个国家和美国之间的距离(38.8670000,-77.0000000)。 我知道 distHaversine 提供的数据示例允许我一个一个地执行此操作,但我如何使用 distHaversine 为我的数据集中的所有国家/地区计算此数据(每个国家/地区与美国的距离)

我试过这个: mutate(geo, Distance = distHaversine(cbind(lon, lat), c(38.8670000, -77.0000000))) 但它返回不正确的距离。

0 投票
1 回答
3143 浏览

python - 计算 GeoPandas 中两个 GeoDataFrame(点)之间的所有距离

这是一个非常简单的案例,但到目前为止我还没有找到任何简单的方法来做到这一点。这个想法是获得 a 中定义的所有点GeoDataFrame与 another 中定义的点之间的一组距离GeoDataFrame

gdf_1这会产生共享相同索引的点之间的元素距离gdf_2(还有一个警告,因为两个 GeoSeries 没有相同的索引,这将是我的情况)。

问题是; 如何获得一系列所有点到点的距离(或者至少是 和 的索引的唯一组合,gdf_1因为gdf_2它是对称的)。

编辑

  • In this post, the solution is given for a couple of points; but I cannot find a straightforward way to combine all points in two datasets.

  • In this post only element-wise operations are proposed.

  • An analogous question was also raised on the GitHub repo of geopandas. One of the proposed solution is to use the apply method, without any detailed answer.

0 投票
2 回答
89 浏览

javascript - 如何计算由纬度和经度和海拔高度指定的两点(垂直)之间的距离?

我检查了其他问题,但没有人谈论如何使用 GPS 计算物体的高度,

考虑我有两个垂直的数据点(不是水平的计算距离),我有(lat1,lon1,alt1)和(lat2,lon2,alt2)。现在,我如何计算物体的高度?有什么公式可以用来计算身高吗?考虑一个立方体,数据点位于前左上角和前左下角,我可以使用任何公式使用这两个数据点得到这个立方体的高度吗?

在此处输入图像描述

0 投票
1 回答
62 浏览

r - 在一天中的同一时间计算多个点之间的距离

我有两个数据框,一个带有我的船 GPS 位置(5512 条记录),一个带有渔船位置(35381 条记录)。我想计算我的船与当天同一时间(到分钟)在该地区的所有其他渔船之间的距离。

我为所有位置创建了一个 IDdatecode (yyyymmddhhmm),然后基于相同的 IDdatecode 合并了两个数据帧。我这样做了:

为了计算距离,我使用了以下公式:

其中 lon1, lat1 是我的船位, lon2, lat2 是渔船。

但我收到以下错误:

到目前为止我尝试的是:

  1. 使用这个其他公式:merged_table$distance_between_vessels=distGeo(c("lon1","lat1"),c("lon2","lat2"))
  2. 把纬度和经度的所有列“as.numeric”
  3. 仅使用我的船和渔船都在场的间隔时间
  4. 忽略警告并继续前进

但我仍然只得到一个 NA 列表。

我在一个更简单的数据集(仅我的船位置)中使用了函数“distGeo”,在该数据集中我手动计算了第一点和第二点之间的距离,然后是第二点和第三点之间的距离,依此类推。该功能完美运行,因为它为我提供了两点之间的正确距离(我在 ArcGIS 上检查过)。这就是我所做的:

因此,我想根据一天中的唯一时间计算“一对多”距离,但出现上述错误。关于为什么的任何想法?谢谢 :)

在这里,我合并表的前 10 行:

0 投票
1 回答
24 浏览

google-maps - 尝试在给定纬度的情况下找到经度与米的比率以进行谷歌地图静态 API 拼接

我正在做一个项目,希望将谷歌地图的静态图像转换成更大的、拼接在一起的地图。

我创建了一个算法,它给出了开始和结束、纬度和经度,它将获取该 lat、lng 对的谷歌地图静态图像,然后将 lng 增加获取图像的像素宽度,在本例中为 700px,使用使用几个公式确定像素与经度比的算法。

正如您在我的附件中看到的那样,这些公式似乎非常适合纬度,垂直平铺的图像几乎完美地排列在一起。

然而在水平方向上,经度增量似乎偏离了 2 倍,或者稍微多一点。

为了增加纬度,我使用恒定的米与纬度比

但是对于经度,我用从这个公式派生的变量替换了 metresToLngRatio 常数

getMetresToLngRatio 和 getMetresPerPxLng 在哪里

getMetresPerPxLng 函数源自这篇文章和这个答案:https : //groups.google.com/g/google-maps-js-api-v3/c/hDRO4oHVSeM/https: //gis.stackexchange.com/questions/ 7430/what-ratio-scales-do-google-maps-zoom-levels-correspond-to

我注意到的是,如果我将 getMetresToLng Ratio 更改为return (1 / Math.abs(111111 * Math.cos(lat))) * 2,拼接看起来更准确,只有几十个像素,而不是图像的近一半。

带 * 2 随着时间 2

无 * 2 没有时间 2

我的经度方程有问题吗?我知道 111111*cos(lat) 是一个粗略的估计,所以我想知道是否有更准确的公式

0 投票
0 回答
19 浏览

python - 从地理数据中获取“最强”集群

我正在设计一种算法来处理坐标集。每个用户都有一个坐标列表(纬度和经度),并且每次他/她执行操作时都会在列表中添加一个新坐标对。大多数情况下,点会非常集中,但可能会发生数据有一些分散的点,或者它们集中在两个不同的点周围。我的集群实际上应该很小,这些集群中的两个中心不太可能在 500m 之内。

我的目标是为每个用户找到最强的集群,最强的意思是其中得分最多的集群。

我的问题是,当数据像这样间隔时,您认为最好的方法是什么?我正在考虑k-meansk-medoids,但可能还有其他算法更适合这些数据。

我主要担心的一个事实是,大多数分散点不应该属于任何集群,也不应该自己构成集群,所以我不确定这两种算法处理这些异常值的效率如何。