从地图中获取中心点,并改变边界

问题描述 投票:0回答:1

我正在使用一个叫histmaps的包(在这里找到的)。https:/github.comjunkkahistmaps。 ),其中储存了关于瑞典行政区域历史边界的信息。我有兴趣找到1900年至1920年期间存在的每个教区的中心点。由于教区的边界是随着时间的推移而变化的,所以需要做一些调整。

包的创建者通过引入hist_boundaries解决了这个问题,比如。

period_map <- hist_boundaries(c(1900, 1920))

现在,我完全不知道如何从时期地图上找到每个教区的中心点。

我试过这段代码

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”

有什么建议吗?

r gis sp centroid
1个回答
1
投票

我建议你下载以下的教区边界信息 {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

© www.soinside.com 2019 - 2024. All rights reserved.