2016-05-13 186 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

相關問題