我正在尝试使用 tigris 包中的邮政编码数据将标签层添加到传单地图。从此包中组织数据的方式与我通常使用的形状文件略有不同,并且在为每个邮政编码在地图上打印标签时遇到了一些麻烦。可重现的例子:
library(tigris) #to get zip shapes from us census
library(dplyr)
library(leaflet)
options(tigris_use_cache = TRUE)
char_zips = zctas(cb = TRUE, starts_with = c('9452'))
leaflet::leaflet() %>%
addProviderTiles('CartoDB') %>% #https://leaflet-extras.github.io/leaflet-providers/preview/
addPolygons(data = char_zips$geometry,fill = FALSE,color='black',weight = 1)
到目前为止,一切都很好。但是现在我想在每个邮政编码中都有一个标签,这样我就知道哪个是哪个,而且我不知道如何使用 tigris 数据框来做到这一点。
这是我尝试过的:
leaflet::leaflet() %>%
addProviderTiles('CartoDB') %>% #https://leaflet-extras.github.io/leaflet-providers/preview/
addPolygons(data = char_zips$geometry,fill = FALSE,color='black',weight = 1) %>%
addLabelOnlyMarkers(data = char_zips, label = char_zips$GEOID10)
Error in pointData.default(sanitize_sf(obj)) :
Don't know how to get location data from object of class sfc_MULTIPOLYGON,sfc
In addition: Warning message:
sf layer has inconsistent datum (+proj=longlat +datum=NAD83 +no_defs).
Need '+proj=longlat +datum=WGS84'
显然,使用 addLabelOnlyMarkers() 存在脱节,但我无法弄清楚如何将邮政编码列与 $geometry 列中的地理数据链接起来。
如何使用此底格里斯河数据添加另一层标签,以显示每个多边形内的邮政编码?