map 3.2.0 package(r):如何在同一个图中放置一个数据集的多个区域?

时间:2017-07-10 11:21:34

标签: r maps packages sf

我需要意大利lombardy region的地图。

当我运行map("italy")但是我可以看到数据集在省级别而不是区域级别划分。伦巴第由12个省组成。 我可以通过map("italy","Milan")获取米兰(城市和省)的地图,但是当我map("italy","Lombardy")时,它会给我一个错误。

我的问题是:如何将多个省份(伦巴第地区的省份)放入一张地图?是否可以删除内部边框?

1 个答案:

答案 0 :(得分:2)

来自maps帮助:

  

该意大利数据库来自联合国环境规划署(UNEP)GRID-Geneva数据集的NUTS III(欧洲共同体的第三级行政单位)数据库。 这些是在1989年左右准备的,因此可能会有些过时。

当时伦巴第只有10个省,所以我们将使用它们。

library(maps)

lombardy_provs <- map('italy', c('Milan', 'Bergamo', 'Brescia', 'Como', 
                                 'Cremona', 'Lecco', 'Mantova', 'Varese', 
                                 'Pavia', 'Sondrio'), 
                      resolution = 0)

resolution = 0参数用于获取可用的最大分辨率,否则我们将在线下获取工件。

我们使用新的sfsimple features)包来合并这些区域。

首先我们将map对象转换为sf

library(sf)
#> Linking to GEOS 3.5.0, GDAL 2.1.1, proj.4 4.9.3

lombardy_sf_provs <- st_as_sf(lombardy_provs)
plot(lombardy_sf_provs)

然后我们可以“联合”他们使用st_union()

lombardy_sf <- st_union(lombardy_sf_provs)
plot(lombardy_sf, col = 'lightblue')

Imo sf格式更适合除maps格式之外的任何用途,YMMV。