Цвет текста ярлыка совпадения с цветом объекта - PullRequest
0 голосов
/ 16 января 2019

Я хочу, чтобы цвет метки соответствовал цвету многоугольника. Здесь я использую статические метки, но я не думаю, что это должно иметь значение. Я нашел этот урок , который может изменить цвет текста надписи, но я хочу, чтобы он соответствовал цветовой палитре, используемой для многоугольника. Вот минимальный пример моей лучшей попытки:

library(leaflet); library(sf)

nc <- st_read(system.file("shape/nc.shp", package="sf"))
nc <- nc %>% st_transform(crs = 4326)
nc2 <- nc[1:3,]

pal <- colorFactor(c('red', 'green', 'blue'), domain = as.character(nc2$NAME))

leaflet(nc2) %>% 
  addPolygons(label = ~NAME,
              color = ~pal(NAME),
              labelOptions = labelOptions(noHide = T, textOnly = T, textsize = 15, 
                                          style = list(
                                            color = ~pal(NAME)
                                          )))

enter image description here

Так, например, я хочу, чтобы текст "Эш" был зеленым. Есть ли способ получить доступ к именам переменных в labelOptions?

Спасибо

1 Ответ

0 голосов
/ 23 января 2019

Очень хакерское решение, но оно работает. Я зацикливаю строки данных и использую addLabelOnlyMarkers с центром тяжести многоугольника строк, используя st_centroid. Я запускаю функцию pal на каждой итерации.

for(i in 1:nrow(nc2)) {
  text_col = pal(nc2$NAME[i])
  p <- p %>% 
    addLabelOnlyMarkers(data = st_centroid(nc2[i,]), 
                        label = ~NAME, 
                        labelOptions = labelOptions(
                            noHide = T, textOnly = T,
                            style = list('color' = text_col)
                        )
  )
}

Я все еще приветствую лучшее решение этого вопроса ...

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