Как выделить места на карте в R? - PullRequest
2 голосов
/ 28 июня 2019

Я пытаюсь использовать tm_text для добавления текста для определения местоположений на карте, используя пакет tmap в R.

Это код, который я использовал для создания своей карты:

library(tmap)
library(spData)

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

Я не могу найти другую базовую карту, которая бы выделяла интересующие меня места на карте, поэтому мне было интересно, есть ли способ наложить текст на определенные области?

Например, визображение ниже Я хотел бы добавить текст, чтобы выделить центральный район Хокс-Бей и Палмертон-Норт.

image

1 Ответ

0 голосов
/ 29 июня 2019

Чтобы добавить текст на карту tmap с помощью вызова tm_text(), вам понадобятся две вещи - метка и местоположение.

С помощью карт 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.

enter image description here

...