如何在 R 中突出显示 tmap 上的位置?

How to highlight locations on a tmap in R?

我正在尝试使用 tm_text 添加文本以使用 R 中的 tmap 包在地图上定义位置。

这是我用来制作地图的代码:

library(tmap)
library(spData)

     tm_shape(nz) +
          tm_fill("Population") +
          tm_borders() +
          tm_layout(basemaps = leaflet::providers$Esri.WorldTopoMap)

我找不到可以突出显示地图上我感兴趣的位置的另一张底图,所以我想知道是否有一种方法可以将文本覆盖到某些区域?

例如,在下图中,我想添加文本以突出显示中央鹰湾区和北帕默顿。

要通过 tm_text() 调用向 tmap 地图添加文本,您需要两件事 - 标签和位置。

在 google 地图的帮助下,我找到了北帕默斯顿和中央霍克斯湾的坐标(之前从未听说过:),我提出以下解决方案:

library(tmap)
library(spData)
library(sf)

points <- data.frame(name = c("Central Hawke's Bay", "Palmerston North"),
                     x = c(176.474193, 175.611667),
                     y = c(-39.922303, -40.355),
                     stringsAsFactors = F)

points <- st_as_sf(points, coords = c("x", "y"), crs = 4326)

tmap_mode("view")

tm_shape(nz) +
  tm_fill("Population") +
  tm_borders() +
  tm_shape(points) + tm_text("name") +
  tm_basemap(leaflet::providers$Esri.WorldTopoMap)

我已经包含了对 {sf} 的库调用,以便于将坐标作为数字转换为空间数据框。我还稍微修改了您的 {tmap} 调用以适应当前的 tmap 最佳实践。