2017-05-22 5 views
0

Rのリーフレットに問題があります:ベースレイヤー(ポリゴン)を変更すると、オーバーレイレイヤーがベースレイヤーの後ろに押し込まれます。リーフレットのヘルプファイルを読んだとき、オーバーレイレイヤーは常にベースレイヤーよりも高い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(); 
     }) 
    } 
    ") 

あなたのJavaScriptのビットでこの問題を回避することができ、onRenderステージは(あなたが唯一の特定のマップオブジェクトに対して一度これをしなければならない)パイプに追加参照

関連する問題