2017-05-22 9 views
0

R의 전단지에 문제가 있습니다. 기본 레이어 (다각형)를 변경하면 오버레이 레이어가 기본 레이어 뒤로 밀려납니다. leafletR 도움말 파일을 읽은 후, 오버레이 레이어는 항상 기본 레이어보다 더 높은 z- 인덱스를 가져야하며 맨 위에 머물러 있어야합니다.R 전단지가 오버레이 레이어의 기본 레이어를 그립니다.

예는 여기에 있습니다 : http://rpubs.com/bvila/overdraw

require(acs) 
require(tigris) 
require(leaflet) 
require(tidyverse) 

leaflet(data = counties(state = "UT")) %>% 
    addPolygons(color = "red", fillColor = "orange", group = "base1", fillOpacity = 1) %>% 
    addPolygons(color = "pink", fillColor = "purple", group = "base2", fillOpacity = 1) %>% 
    addPolygons(color = "yellow", fillColor = "green", group = "overlay", fillOpacity = 1) %>% 
    addLayersControl(baseGroups = c("base1", "base2"), options = layersControlOptions(collapsed = F), overlayGroups = "overlay") 

답변

0

다각형 층은 항상 타일 층보다 더 높은 Z- 인덱스가 있어야합니다. 레이어 그룹은 기본 그룹이 기본 (타일) 레이어로, 오버레이 그룹이 오버레이 (다각형) 레이어로 사용되기 때문에이 용어를 사용합니다.

leaflet(data = counties(state = "UT")) %>% 
    addPolygons(color = "red", fillColor = "orange", group = "base1", fillOpacity = 1) %>% 
    addPolygons(color = "pink", fillColor = "purple", group = "base2", fillOpacity = 1) %>% 
    addPolygons(color = "yellow", fillColor = "green", group = "overlay", fillOpacity = 0.5) %>% 
    addLayersControl(baseGroups = c("base1", "base2"), options = layersControlOptions(collapsed = F), overlayGroups = "overlay") %>% 
    htmlwidgets::onRender(" 
    function(el, x) { 
     this.on('baselayerchange', function(e) { 
     e.layer.bringToBack(); 
     }) 
    } 
    ") 
:

당신은 자바 스크립트의 비트와 함께이 문제를 해결할 수 있고,하는 onRender 단계는 (당신은 단지 지정된 맵 객체에 대해 한 번 이렇게 할 필요) 파이프에 추가 참조