2016-05-13 184 views
3

我正在制作美国社区调查数据地图。目前我有一个主层(见下面plotMerge$incomePerCapita)。它运作良好,有一个完全充实的弹出窗口,图像和所有。当我添加第二层时,为了提供县和区域边界,短程边界变得不可点击,看起来被新层掩盖。Leaflet Map - 第二个Polygon使第一层不可点击

如果我交换图层顺序,区域边界变得不可见。

map1<-leaflet()%>% 
    addTiles()%>% 

addPolygons(data = plotMerge, 
      fillColor = ~pal(plotMerge$incomePerCapita), 
      color = "#000000", #this is an outline color 
      fillOpacity = 0.8, 
      weight = 0.2, 
      popup=popup)%>% 
addPolygons(data = countyPoly, 
      fillColor = "transparent", 
      color = "#000000", 
      stroke = TRUE, 
      weight = 1, 
      smoothFactor = 0.5, 
      group = "Counties")%>% 
addLegend(pal = pal, 
      values = plotMerge$incomePerCapita, 
      position = "bottomright", 
      title = "State-wide Income Percentiles", 
      labFormat = labelFormat(digits=1)) 

saveas(map1, "map1.html") 
map1 

有没有一种方法可以在第二层显示边界轮廓,但仍保留前一层完整的功能?

我应该以不同的方式脚本化addPolygons以显示边界而不强加功能晦涩的图层吗?

UPDATE:

我固定的错误,并交换了addPolygons代码来获取层的正确顺序。

map1<-leaflet()%>% 
    addTiles()%>% 
addPolygons(data = countyPoly, 
      fillColor = "transparent", 
      color = "#000000", 
      stroke = TRUE, 
      weight = 1, 
      smoothFactor = 0.5, 
      group = "Counties")%>% 
addPolygons(data = plotMerge, 
      fillColor = ~pal(plotMerge$incomePerCapita), 
      color = "#000000", #this is an outline color 
      fillOpacity = 0.8, 
      weight = 0.2, 
      popup=popup)%>% 
addLegend(pal = pal, 
      values = plotMerge$incomePerCapita, 
      position = "bottomright", 
      title = "State-wide Income Percentiles", 
      labFormat = labelFormat(digits=1)) 

感谢您的期待!

+0

没有数据很难测试,但也许你可以使用显示/隐藏层来访问这两个层(https://rstudio.github.io/leaflet/showhide.html) – MLavoie

回答

3

如果您正在使用sp适当的空间对象时,你可以强迫你countyPolySpatialLines(DataFrame)

countyLines <- as(countyPoly, "SpatialLinesDataFrame") 

那么你应该可以点击下面的多边形层,同时显示在顶部的线条。

编辑: 作为一个重复的例子,你可以试试:

library(mapview) 
library(sp) 

pol <- as(gadmCHE, "SpatialPolygons") 
ln <- as(gadmCHE, "SpatialLines") 

mapview(gadmCHE, color = "blue") + pol # not clickable 
mapview(gadmCHE, color = "blue") + ln # clickable 
+0

我正在使用真正合适的空间对象在与我们分享之前在arcGIS服务器上创建。这很棒。我发现很难知道包装物体是如何相互发挥作用的。这非常有帮助! – sconfluentus

+0

作为提示,首先确保您先了解空间类别,然后使用**单张**(或** mapview **)进行映射是在公园散步。 – TimSalabim

0

随着leaflet_1.1.0,它似乎是由@TimSalabim提出的解决方案不工作了。
您现在可以使用addPolylines而不是addPolygons来解决问题。

+0

你能详细说明究竟什么不工作了吗? – TimSalabim

+0

我有一个chloropleth地图,我在其上添加行政界限。两者都是'sp'' SpatialPolygonsDataFrame',并且像原始问题一样与'addPolygons'一起添加到传单映射中。当我这样做时,等值线地图的弹出窗口和标签不再可用。如果我将管理边界转换为'SpatialLines'并使用'addPolygons'将其添加到传单地图,则弹出窗口和标签不可用。如果我用'addPolylines'直接添加管理边界(多边形),它可以工作,我可以看到标签和弹出窗口。 – Gilles

+0

这意味着上述解决方案不再起作用了吗?它使用'mapview'而不是'leaflet'直接。当你将'SpatialLinesDataFrame'传递给mapview调用本身或通过'+'传递时,mapview'将使用'addPolyLines'。如果上述解决方案中的mapview(gadmCHE,color =“blue”)+ ln'行不启用多边形查询,请让我知道。 – TimSalabim

相关问题