Получить центроид с карты с изменением границ - PullRequest
0 голосов
/ 24 апреля 2020

Я работаю с пакетом «Гистамап» (находится здесь https://github.com/junkka/histmaps), где хранится информация об исторических границах административных зон в Швеции. Я заинтересован в том, чтобы найти центроид каждой пари sh, существовавшей между 1900 и 1920 годами. Поскольку границы приходов менялись со временем, необходимо внести некоторые коррективы.

Создатель Пакет решил эту проблему, введя исторические границы, например:

period_map <- исторические границы (c (1900, 1920)) </p>

Теперь я совершенно не понимаю, как найти центроиды каждый пари sh с карты периода.

Я пробовал этот код:

centroids <- 
  gCentroid(
    spgeom = methods::as( object = period_map, Class = 'Spatial' )
    , byid = TRUE
  )

но это только возвращает:

Error in methods::as(object = period_map, Class = "Spatial") : 
  no method or default for coercing “list” to “Spatial”

Есть предложения?

1 Ответ

1 голос
/ 24 апреля 2020

Я предлагаю вам загрузить границы pari sh в формате пакета {sf} (похоже, для этого есть параметр формата); После этого вы сможете применить функцию sf::st_centroid().

library(histmaps)
library(dplyr)
library(sf)

polygons <- hist_boundaries(1900, format = "sf")

centroids <- polygons %>% 
  st_centroid()

plot(st_geometry(polygons))
plot(centroids, pch = 4, col = "red", add = T)

enter image description here

...