问题标签 [ggspatial]

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 投票
2 回答
1132 浏览

r - 如何将 Thunderforest API 密钥传递给 R ggspatial 包以创建地图

我正在使用rosmand ggspatialR 包创建地图。该ggosm功能易于使用,可根据提供的空间对象提取底图图层。这是一个例子。

在此处输入图像描述

这很好用。我可以将基础地图图层更改为其他类型(请参阅osm.types()可用类型。这是一个cartolight用作基础地图图层的示例。

在此处输入图像描述

这也有效。现在我的问题是如何传递 Thunderforest API 密钥?如果我使用类型 as thunderforestoutdoors,我得到以下输出。

在此处输入图像描述

显然,我需要 Thunderforest API 密钥,所以我从https://www.thunderforest.com/注册了一个 API 密钥。此页面 ( https://www.thunderforest.com/docs/apikeys/ ) 展示了如何使用 API 密钥。的文档rosm还显示,用户可以通过提供 URL 来定义地图图块(请参阅?as.tile_source)。尽管如此,URL 的一般结构似乎是:https://{s}.tile.thunderforest.com/outdoors/{z}/{x}/{y}.png?apikey=<insert-your-apikey-here>. 我需要知道zxy(缩放级别和图块编号)来指定图块。这是不可能的,因为我有很多空间对象要绘制,我需要ggosm为我确定正确的缩放级别和图块。如果有人能对此有所了解,那就太好了。

0 投票
2 回答
723 浏览

r - 使用 R 中的 Lambert Conformal Conic 投影在 ggplot2 中映射北极/亚北极地区

我正在尝试使用 ggplot2 绘制北极/亚北极地区的纬度/经度位置,并按类型为它们着色。

这是我正在使用的软件包:

这是我的数据示例:

我为北极圈创建了一个 shapefile,可在此处找到:https ://www.arcgis.com/home/item.html?id=f710b74427a14a1d804e90fbf94baed4

我正在尝试使用 ggplot2 进行映射,但我找不到使用 Lambert Conformal Conic 投影添加底图的方法。

我知道您可以使用coord_sf()来指定投影和边界,但我找不到圆锥投影的代码。

我的地图边界最好是在大约 45 度纬度的北极圈周围的一个圆圈。如果无法制作圆形边界,那么围绕该纬度的矩形也可以。

我对 R 比较陌生,所以任何帮助将不胜感激!

0 投票
0 回答
63 浏览

r - Replicating Hexagon heatmap in ggmaps [R]

I need to replicate that can be found in the link: https://rpubs.com/chrisbrunsdon/gwdplyr

I tried the very approach however I cannot replicate final hexagon colored heatmap.

My main issues is that I am having problem with even creating non colored map, using st_buffer(), st_make_grid() for some reason it takes a lot of time and then cannot be store because the file is very large.

I provided example that is with location that I need to plot heatmap on, then values are discrete and shall be use as color in heatmap

I will be thankful for any advice...

0 投票
0 回答
738 浏览

r - 如何使 geom_sf() 指向北?

我正在尝试为 R 和 ggplot 制作一个映射包,允许用户使用十进制度定义他们的数据,但会根据用户数据的位置使用适当的投影。我决定为此目的使用ggspatial包,因为它会自动转换坐标。ggspatial 包反过来使用sf包,它由 ggplot 支持。

我将北极极地立体投影用于源自 >60 纬度的数据。投影是笛卡尔投影,以距离北极的米为坐标单位。自然,当我尝试在北极的太平洋一侧绘制此投影时,北方将指向下方(因为 y 坐标指向北极)。

coord_sf如何使用和 ggplot将地图指向北方?如果没有合理的方法来做到这一点,你能提出解决这个问题的方法吗?

示例数据:

显示示例数据的地图。红色多边形表示应绘制的区域。

我实现这一点的唯一方法是直接使用笛卡尔坐标,但这种方法不允许geom_spatial_point稍后使用十进制度数 ( ) 在顶部绘制数据。

reprex 包于 2020-04-17 创建(v0.3.0)

0 投票
0 回答
146 浏览

r - 在ggspatial图中使用轴标签和网格线的投影坐标?

我正在使用 ggspatial 在 UTM 投影中绘制地图。地图以正确的投影绘制,但轴标签仍然是经纬度。我想在轴上显示 UTM 坐标。

所需输出: 德国地图,在 x 和 y 轴上显示以公里为单位的 UTM 坐标

示例代码:

结果输出: UTM 投影中的德国地图,但网格线和轴标签以经纬度表示

您可以从边界框显示为具有直边的矩形这一事实轻松看出,空间对象被绘制在预期的投影中。

调用 ggplot 时,控制台会打印一条警告:

但是,当我检查 ggplot 对象时,没有 crs 信息:

上面的“所需输出”是用 spplot 生成的:

但是,还有其他原因不使用 graphics::plot、sp::spplot 或其他替代方法,除非确实无法使用 ggspatial 解决这个看似简单的问题。

我曾尝试阅读 ggspatial 文档,该文档说绘图 CRS 由 coord_sf 设置或默认为第一层空间的 CRS,但这不是正在发生的事情。我曾尝试过玩耍并在谷歌上搜索解决方案,但不知所措。

一种可能的方法是为 x 和 y 创建自定义比例,使用自定义标签和中断,或者取消网格线或使用 annotation_spatial_hline() 和 vline 创建它们。但是我希望有一个简单的解决方法。

0 投票
1 回答
601 浏览

r - 如何在 ggplot 中为地图中的多个图层自定义图例?

我正在尝试修复我的标题,但我无法创建它。我想要类(填充)、形状限制(颜色)、点(颜色)和网格(填充=NA)的标题。我把它们都放进去了,aes ()但我没有预期的结果。有谁能够帮我?谢谢!

在此处输入图像描述

0 投票
1 回答
80 浏览

r - 使用极坐标(epsg:3995)投影和ggspatial时如何在ggplot中的第66个平行北方画一条线

我正在尝试在北纬 66 度线上画一个蓝色圆圈。在我正在制作的地图上。

我通常是fortify()一个SpatialPolygonsDataFrame,然后使用组合geom_polygon()coord_map("ortho" , ylim = c(50, 90))geom_hline()实现这一点。

但是,对于一个新项目,我将不得不ggspatial::layer_spatial()在一个已经有 CRS 日期的对象上使用,所以这种直线绘制和自动重新投影不起作用。

这是我常用方法的演示,该方法有效:

在此处输入图像描述

我试图在这段代码中复制它,但这显然不起作用,因为geom_hline()没有正确的投影:

在此处输入图像描述

0 投票
0 回答
51 浏览

r - 在 ggplot2/ggspatial 中将 25% 和 95% 的内核密度体积轮廓绘制到底图上

我试图将利用 kernelud 找到的一系列坐标的 25% 和 95% 内核密度估计值说明到使用 ggplot2/ggspatial 制作的底图中。我已经将两个不同个体的一系列坐标转换为空间点数据框,然后能够使用 getverticeshr 函数提取所需的不同级别的内核密度体积轮廓,但是,我无法将其导出到底图中格图。任何帮助将不胜感激!

0 投票
1 回答
355 浏览

r - 使用 rnaturalearth 将河流添加到地图中

我正在尝试将河流数据添加到下面的这张地图中

我的目标是制作一张覆盖河流数据(主要是湄公河)的东南亚地图,但我不确定如何将“rivers50”与“SEA”合并

0 投票
0 回答
104 浏览

r - R - 如何绘制 Openstreetmap 基础层并将其与 ggplot2 中的栅格对象叠加?

我需要你的帮助。除了一些(此处未列出)之外,我想在withsf objects顶部绘制一个栅格图层。当我使用 a 时这很好用,但当我使用如下转换的栅格时就不行了。结果显示了一个扭曲的山体阴影栅格,包括奇怪的坐标。我有一种感觉,问题出在光栅文件中(如这里),但我现在不知道如何正确处理它。请考虑将山体阴影栅格作为任何栅格的示例。openstreetmapggplot2sf objectCRS

这是一个可重现的示例: