Управление индексом Z тепловой карты Leaflet в R - PullRequest
0 голосов
/ 13 февраля 2019

Я использую пакеты leaflet и leaflet.extras.
Пытаюсь нарисовать карту тепла поверх полигонов , но не могу получить полигоны«под» тепловой картой.

Вещи, которые не работают:

  • Изменение порядка вызовов для addPolygons и addHeatmap
  • Установка z-индекса с помощью addPolygons(options = list(zIndex = ...))

Минимальный пример

library(leaflet)
library(leaflet.extras)

leaflet() %>%
  addPolygons(lng = c(10, 20, 20, 10), lat = c(10, 10, 20, 20), fillOpacity = 0.75) %>%
  addHeatmap(lng = c(14, 15, 15, 16), lat = c(10, 10, 12, 10))

enter image description here

1 Ответ

0 голосов
/ 13 февраля 2019

Leaflt.JS устанавливает Z-индексы как именованные «панели».Например, tilePane равен 200, overlayPane - 400 и т. Д., См .: https://leafletjs.com/reference-1.4.0.html#map-pane

Когда вы добавляете свои полигоны, попробуйте установить для слоя Heatmap значение z-index 450 или установить буклет слоянапример, для определенной панели, попробуйте:

addHeatmap(
    lng = c(14, 15, 15, 16), lat = c(10, 10, 12, 10), 
    options = pathOptions(pane = "overlayPane"))

Вот пример из документации по созданию собственной настраиваемой панели:

# circles (zIndex: 420) are below the lines (zIndex: 430)
leaflet()%>%
addTiles() %>%
    # move the center to Snedecor Hall
    setView(-93.65, 42.0285, zoom = 14) %>%
    addMapPane("ames_lines", zIndex = 430) %>% # shown below ames_circles
    addMapPane("ames_circles", zIndex = 420) %>% # shown above ames_lines
    # points above polygons
    addCircles(
        data = random_data, ~lng, ~lat, radius = ~radius, popup = ~circleId,
        options = pathOptions(pane = "ames_circles")
    ) %>%
    # lines in'ames_lines'pane
    addPolylines(
        data = random_data, ~lng, ~lat, color = "#F00", weight = 20,
        options = pathOptions(pane = "ames_lines")    
    )

См. https://cran.r-project.org/web/packages/leaflet/leaflet.pdf страницы 13-14.

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