Я понимаю, как управлять объектами класса SpatialPolygonsDataFrame, и могу отображать их на картах, используя базу R или буклет.
Однако Я не могу понять, почему приведенный ниже фрагмент кода больше не работает с«объединенные» полигоны .Я использую rmapshaper::ms_dissolve()
для объединения полигонов, что не меняет класс объекта ...
Можете ли вы помочь выяснить ошибку?Заранее большое спасибо!
Ниже приведен минимальный воспроизводимый пример.Части 1 и 2 в порядке.Часть 3 перерывы ..
# Load required packages
library(dplyr)
library(leaflet)
library(rmapshaper)
# load data (example dataset from leaflet)
test_data <- gadmCHE
# inspect class (SpatialPolygonsDataFrame)
test_data %>% class()
# ---------------------- #
# FIRST PART WORKS FINE #
# - add colors #
# - display using base R #
# - disply using leaflet #
# ---------------------- #
# add color to test_data (red)
test_data@data <- test_data@data %>% mutate(color = "#ff0000")
# basic plot (works fine)
plot(test_data, col = test_data@data$color)
# leaflet plot (works fine)
leaflet() %>%
addTiles() %>%
addPolygons(data = test_data, color = test_data@data$color)
# change color of particular regions (yellow)
test_data@data <- test_data@data %>%
mutate(GROUP = ifelse(OBJECTID <= 5 | OBJECTID %in% c(16,25), 99, OBJECTID),
color = ifelse(GROUP == 99, "#ffff00", color))
# basic plot (works fine)
plot(test_data, col = test_data@data$color)
# leaflet plot (works fine)
leaflet() %>%
addTiles() %>%
addPolygons(data = test_data, color = test_data@data$color)
# ---------------------- #
# 2ND PART WORKS FINE #
# - merge #
# - display using base R #
# ---------------------- #
# split polygons (works fine)
temp_1 <- test_data[test_data@data$GROUP == 99,]
temp_2 <- test_data[test_data@data$GROUP != 99,]
# merge (works fine)
new_group <- ms_dissolve(temp_1, copy_fields = colnames(test_data@data))
# basic plot (works fine)
plot(new_group, col = new_group@data$color)
# ----------------------- #
# LAST PART DOES NOT WORK #
# - display using leaflet #
# ----------------------- #
# leaflet plot (DOES NOT WORK)
leaflet() %>%
addTiles() %>%
addPolygons(data = temp_2, color = temp_2@data$color)
addPolygons(data = new_group, color = new_group@data$color)
# => HOW TO MAKE NEW_GROUP APPEAR IN YELLOW ON THE LEAFLET MAP?