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

r - 从包 geosphere 中了解 `areaPolygon()` 的输出

这个问题中,我获得了一个很棒的功能areaPolygon(),它给了我一个坐标多边形内的区域。但是,当我尝试使用该函数时,计算似乎很奇怪:

我首先创建一组两个点

然后我检查这两者之间的距离:

获得:0.2827821 公里(这将是矩形的对角线)

我继续创建一个矩形

看看这看起来是否不错:plot(polygon)

第四步:我计算多边形内的面积。

但是,我会预料200*200=40000 m²到,因为我的斜角的边是 200 x 200 米。这可以通过

所以现在来回答我的问题(最后)我做错了什么?非常感谢您的帮助!

0 投票
1 回答
62 浏览

r - 将矩阵列转换为向量失败,原因未知

我正在处理来自 geosphere::gcIntermediate 的输出数据,它生成 Great Circle 航路点。输出是一个列表。然后我确定各个列表项的长度:

但是将这个列表转换成一个简单的向量似乎是不可能的。我尝试的任何东西都会产生一个列表或维度 [100,1] 的矩阵,例如:

尽管是矩阵,但这些数据是否具有某种不同的内部结构?例如将其与:

感谢您的帮助。

0 投票
1 回答
665 浏览

r - 从我自己的包中使用 sp(空间包)会导致错误:找不到函数

我正在开发我的第一个包——嗯,实际上我正在打包一些现有的代码——在 RStudio 中。我已经用 roxygen2 标记了所有评论,这已经生成了一个正确的 NAMESPACE 文件,其中包括:

我正在使用distm()geosphere 包中的函数来计算距离矩阵,但它失败了:

.pointsToMatrix(x) 中的错误:在 peta.R#79 处找不到函数“is.projected”4 .pointsToMatrix(x) 3 distm(OCC, SPAD, fun = distMeeus)

现在is.projected()在我已经导入的 sp 包中,所以它应该在我的搜索路径中。不应该吗?

作为一个实验,我library(geosphere)在调用我的包代码之前调用了(它也加载了 sp),我的函数已经过了那个点。Soooo,我还需要library()为每个包裹打电话吗???这似乎有点多余,在这一点上,我想我会停下来看看是否有人可以在我进一步打破任何东西之前让我直截了当......

0 投票
1 回答
432 浏览

r - geosphere 包中的周界函数

我想为 R 中 geosphere 包中的函数 perimeter 函数提供一组坐标,并且坐标不会形成封闭的多边形。该函数会给我线段的长度还是关闭多边形本身并给出周长?

数据如下:

0 投票
1 回答
870 浏览

r - How can I add directional arrows to lines drawn on a map in R?

I've got a map that I've built using the maps and geosphere packages that looks like an airline map. However, I'd like to add arrows to the lines to show the directions of the "routes" in my map. You can see my current working code below (based off of the fabulous tutorial from FlowingData). I've tried before to use the arrows function in lieu of the lines function, yet I'm not sure how to make the arrows go with the geosphere curve, or ensure that the arrows are spaced along the line so that they look like this:

-->-->-->

I'm incredibly new to R, so any and all assistance would be greatly appreciated. Thanks in advance.

0 投票
1 回答
8351 浏览

r - 在 data.table 上使用 geosphere distm 函数计算距离

我创建了一个包含 6 列的 data.table。我的 data.table 有一列比较两个位置:位置 1 和位置 2。我正在尝试使用 distm 函数计算每行位置之间的距离,创建第 7 列。geosphere 包中的 distm 包需要两个不同的向量来计算每个纬度/经度组合。我下面的代码不起作用,所以我试图弄清楚如何为函数提供向量。

假设 res 保存 data.table 下面的代码不起作用。

如果我要拉出每个向量,则该函数可以正常工作。

真的,我的问题是当该函数需要向量作为参数时,如何应用函数来选择 data.table 中的列。

0 投票
0 回答
414 浏览

r - R 地图和地理圈:连接城市而不跨越国际日期变更线

我发现了这个很棒的教程,关于如何使用地图和地理圈来使用大圆圈连接 R 中地图上的点:

https://flowingdata.com/2011/05/11/how-to-map-connections-with-great-circles/

如果线路超出地图边缘(越过国际日期变更线),是否有办法使线路走向另一条路:

地图

对于连接 DC 和北京的线路,我当前的代码如下所示:

明确地说,我想最终得到如下所示的东西:

很长的路要走

看起来这将是与第一个在同一平面上的另一个大圆弧,但我不知道如何绘制它。

0 投票
0 回答
135 浏览

r - 在一个方向画大圆圈

我正在使用R Geosphere package绘制连接美国和印度之间的 GIS 坐标对的大圆圈。

据我所知,该程序包计算地球圈上两点之间的最近距离,然后在该方向上绘制大圆(我认为这个方向在技术上称为azimuth?)。

但是,我希望所有大圆圈在我的情节中都朝着一个方向前进——越过大西洋,而不是太平洋。

有什么方法可以让他们走一条路(最好的)或压制那些没有朝着正确方向前进的大圈(不太理想)?

0 投票
1 回答
1611 浏览

r - 纬度和经度、x 和 y 以及绘制它们时的差异:geosphere 和 ggmap

我正在使用纬度和经度数据,并尝试以图形方式显示斯德哥尔摩地图上每个点的指标(基于与该点的接近程度)。我对图像上等距的点更感兴趣,而不是在实际距离上等距:从这个意义上说,我理解赤道纬度点之间的距离比它们沿极圈的距离长,这可能是一个至关重要的问题。

我的目标是将地图划分为在 x 和 y 方向上大约 1 公里增量的网格。因此,我取了最小和最大纬度和经度,计算了它们与斯德哥尔摩中心的 x 和 y 距离,然后将经纬度的跨度除以 x 和 y 坐标的跨度(使用 geosphere)。我这样做是因为我希望这些点在绘制它们时等间距(否则,由于靠近赤道,与地图底部相比,顶部的 x 点之间的距离会更小)。

然后我在地图上绘制了这些点(使用 ggmap),并观察到 ​​y 方向上的点之间的距离比 x 方向上的距离更大。我想地图可以简单地以扭曲的方式绘制,但它似乎有点太扭曲了,难以置信。我怀疑我可能做错了什么,但找不到可能是什么。

下面的代码示例:

输出图

从输出图中可以看出,与 x 方向相比,y 方向上的点之间的距离至少是 x 方向上的两倍。

总结一下:x 和 y 坐标是使用 geosphere 获得的。该地图是使用 ggmap 绘制的。

我对地圈做错了吗?还是纬度和经度图如此扭曲?当我打开谷歌地图并使用“测量距离”工具大约在顶部和底部以及左右点之间时,我得到的估计值为 16.3 和 16.9 公里,而我得到的地球圈值是 17 和 32 公里(x 和 y ) 分别。

如果有人能告诉我这里发生了什么,我将非常感激!

0 投票
2 回答
1734 浏览

r - R:计算大距离矩阵的更快方法

我正在计算球体上大量位置(5000)之间的距离矩阵(使用Haversine距离函数)。

这是我的代码:

计算距离矩阵的时间为

执行此程序所需的时间很长。任何建议如何降低完成这项工作的时间!谢谢。