我有一个德国的5位数邮政编码shapefile。大数字1位邮政编码与德国各州相似。我用rgdal
读取shapefile数据,因此有SpatialPolygonsDataFrame
。我只有德国部分地区的数据,即。一些邮政编码。我喜欢用5位数的粒度来展示我所拥有的数据。使用leaflet
来创建一个Map,它使我花了很长时间来绘制所有的近10.000个邮政编码。因此,我喜欢“summarize”/“合并”/“merge”那些没有数据的邮政编码的外边界(值为NA
)。
# German postcode shapes
# Create temp files
temp <- tempfile()
temp2 <- tempfile()
# Download the zip file and save to 'temp'
URL <- "https://downloads.suche-postleitzahl.org/v2/public/plz-5stellig.shp.zip"
download.file(URL, temp)
# Unzip the contents of the temp and save unzipped content in 'temp2'
unzip(zipfile = temp, exdir = temp2)
# Read shape file
library(rgdal)
GER_postcode <- readOGR(temp2)
head(GER_postcode@data$note)
# Create subsample
library(tidyverse)
GER_postcode@data$einwohner2 <- ifelse(substr(GER_postcode@data$plz, 1, 1) %in% c("0", "1", "7"), GER_postcode@data$einwohner, NA)
# Plot Subsample
library(leaflet)
qpal <- colorBin("Reds", GER_postcode@data$einwohner2, bins=10)
leaflet(GER_postcode) %>%
addPolygons(stroke = TRUE,opacity = 1,fillOpacity = 0.5, smoothFactor = 0.5,
color="black",fillColor = ~qpal(einwohner2),weight = 1) %>%
addLegend(values=~einwohner2,pal=qpal,title="Population")
字符串
我怎样才能使Map显示这些邮政编码形状的值,并合并所有其他的值是NA
?
x1c 0d1x的数据
我正在查看library(rgeos)
和gUnaryUnion()
,它们将shapefile中的所有单位单位都单位到外部边界。虽然我只需要在一个子集上这样做。
1条答案
按热度按时间aurhwmvo1#
我个人会使用过滤器/子集删除不相关的多边形,并使用国家轮廓作为一个单独的背景层。Outline可以通过联合邮政编码形状来构建,不过下载一个邮政编码形状(或者安装一些捆绑了国家形状的包)可能会更快
由于
rgdal
和regos
将在几个月内退役,因此下面的示例使用sf
(以及可选的geos
包)。字符串
x1c 0d1x的数据
创建于2023-07-17带有reprex v2.0.2