问题标签 [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.
algorithm - 重新组合地理点的算法
我正在使用地图创建应用程序,并且必须在其上放置点。问题是当点在附近时,用户看不到差异。所以,我需要重新组合点。
我收到这样的 JSON:
我需要重新组合点,最大点相差 20 像素,并与所有其他点的平均值协调。它处理的是这样的 JSON:
我只需要一个算法来帮助我构建自己的代码。
谢谢你能给我的所有帮助。
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))) 但它返回不正确的距离。
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.
r - 在一天中的同一时间计算多个点之间的距离
我有两个数据框,一个带有我的船 GPS 位置(5512 条记录),一个带有渔船位置(35381 条记录)。我想计算我的船与当天同一时间(到分钟)在该地区的所有其他渔船之间的距离。
我为所有位置创建了一个 IDdatecode (yyyymmddhhmm),然后基于相同的 IDdatecode 合并了两个数据帧。我这样做了:
为了计算距离,我使用了以下公式:
其中 lon1, lat1 是我的船位, lon2, lat2 是渔船。
但我收到以下错误:
到目前为止我尝试的是:
- 使用这个其他公式:merged_table$distance_between_vessels=distGeo(c("lon1","lat1"),c("lon2","lat2"))
- 把纬度和经度的所有列“as.numeric”
- 仅使用我的船和渔船都在场的间隔时间
- 忽略警告并继续前进
但我仍然只得到一个 NA 列表。
我在一个更简单的数据集(仅我的船位置)中使用了函数“distGeo”,在该数据集中我手动计算了第一点和第二点之间的距离,然后是第二点和第三点之间的距离,依此类推。该功能完美运行,因为它为我提供了两点之间的正确距离(我在 ArcGIS 上检查过)。这就是我所做的:
因此,我想根据一天中的唯一时间计算“一对多”距离,但出现上述错误。关于为什么的任何想法?谢谢 :)
在这里,我合并表的前 10 行:
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
,拼接看起来更准确,只有几十个像素,而不是图像的近一半。
我的经度方程有问题吗?我知道 111111*cos(lat) 是一个粗略的估计,所以我想知道是否有更准确的公式
python - 从地理数据中获取“最强”集群
我正在设计一种算法来处理坐标集。每个用户都有一个坐标列表(纬度和经度),并且每次他/她执行操作时都会在列表中添加一个新坐标对。大多数情况下,点会非常集中,但可能会发生数据有一些分散的点,或者它们集中在两个不同的点周围。我的集群实际上应该很小,这些集群中的两个中心不太可能在 500m 之内。
我的目标是为每个用户找到最强的集群,最强的意思是其中得分最多的集群。
我的问题是,当数据像这样间隔时,您认为最好的方法是什么?我正在考虑k-means或k-medoids,但可能还有其他算法更适合这些数据。
我主要担心的一个事实是,大多数分散点不应该属于任何集群,也不应该自己构成集群,所以我不确定这两种算法处理这些异常值的效率如何。