Построение объекта типа sf в листовке [r] - PullRequest
1 голос
/ 30 апреля 2020

Я хотел бы спросить, как построить sf объект в листовке из leaflet package Я знаю о mapview package, который может построить его, однако я предпочитаю использовать пакет lealfet.

Я привел пример ниже :

library(leaflet)
library(eurostat)
library(dplyr)
library(ggplot2)

options(readr.default_locale=readr::locale(tz="Europe/Berlin"))
df60 <- get_eurostat_geospatial(resolution = 60)

CE.sf <- df60 %>%   
  dplyr::filter(LEVL_CODE == 2 & CNTR_CODE %in% c("AT","CZ","DE","HU","PL","SK")) %>% 
  dplyr::select(NUTS_ID) 

plot(CE.sf)

CE.sf %>% 
  ggplot() +
  geom_sf(color = "black", size = 0.4)

CE = sf::as_Spatial(CE.sf)

leaflet() %>% 
  addProviderTiles("CartoDB.Positron") %>% 
  addPolygons(data= CE, color = "green")

Мне нужно воспроизвести сюжет из строки 15 в листовке, я нашел здесь несколько идей: https://gis.stackexchange.com/questions/239118/r-convert-sf-object-back-to-spatialpolygonsdataframe

Однако использование этого подхода не работает.

1 Ответ

1 голос
/ 01 мая 2020

Вы просто забыли установить аргумент data в функции leaflet(). Более того, вам не нужно преобразовывать объект sf в формат sp:

# packages
library(leaflet)
library(eurostat)
library(dplyr)
library(ggplot2)

options(readr.default_locale=readr::locale(tz="Europe/Berlin"))
df60 <- get_eurostat_geospatial(resolution = 60)
#> sf at resolution 1:60 read from local file

CE.sf <- df60 %>%   
  filter(LEVL_CODE == 2 & CNTR_CODE %in% c("AT","CZ","DE","HU","PL","SK")) %>% 
  select(NUTS_ID) 

plot(CE.sf)

leaflet(CE.sf) %>% 
  addProviderTiles("CartoDB.Positron") %>% 
  addPolygons(color = "green")

Создано в 2020-05-01 пакетом Представить (v0.3.0)

...