Использование purrr :: map с листовкой - PullRequest
0 голосов
/ 31 октября 2018

Я пытаюсь реализовать функцию purrr *1001* для добавления слоев на карту leaflet, но пытаюсь уменьшить результат.

Когда я запускаю этот код, я получаю список, в котором каждый элемент представляет собой отдельную карту листовки (сгенерированную правильно). Обычно слои добавляются в карты листовок, начиная с существующей карты и используя функции add.

Я прошу прощения за то, что не делал представлений, но данные слишком велики / сложны, чтобы включать их здесь.

Есть ли у кого-нибудь предложения о том, как объединить / уменьшить получающиеся слои, которые в итоге получатся как отдельные карты в списке?

layerlst <- lst(all_births = tibble(map = T,
                                    group = "All Births",
                                    pal = "Greens",
                                    datacol = "births_all_births"),
                birth_rate = tibble(map = T,
                                    group = "Birth Rate",
                                    pal = "Greens",
                                    datacol = "birth_rate"))

mymap <- leaflet() 


mymap <- layerlst %>% 
purrr::map(function(layer) {

palette <- colorNumeric(
  palette = layer$pal,
  domain = range(select(cdc, !!layer$datacol), na.rm = T)
)

mymap %>% 
  addProviderTiles("CartoDB.Positron", group = layer$group) %>%
  addPolygons(data = cdc_geo, 
              fillColor = ~palette(cdc_geo@data %>% pull(!!layer$datacol)), 
              color = "#b2aeae", 
              fillOpacity = 0.7, 
              weight = 1, 
              smoothFactor = 0.2,
              popup = popup,
              group = layer$group) %>% 

  addLegend(pal = palette, 
            values = cdc_geo@data %>% pull(!!layer$datacol), 
            #labFormat = labelFormat(transform = function(x) 100*x, suffix = "%"),
            position = "bottomleft", 
            title = layer$group)
}
) 

Выполнение mymap[1] и mymap[2] для правильного просмотра результата дает каждый слой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...