簡體   English   中英

Plot MULTILINESTRING 使用 leaflet

[英]Plot MULTILINESTRING using leaflet

我對 leaflet 和 R 中的映射相當陌生。 我正在嘗試可視化 R 中某些多線串的流量。 我找到的最接近的答案是:

如何在 leaflet 中的 plot MULTILINESTRING 添加多段線?

但我想根據它們的數量或數量對這些多線串進行 map。 我的 multilinestring 數據最初是字符,所以我使用 'sf' 庫將它們轉換為 sfc_multilinestring。 你可以在這里找到原始數據集

我的樣本數據:

data <- data.frame(
    multilinestring = c("MULTILINESTRING ((-114.06036700906716 51.04831941917631, -114.05790835100508 51.04824965329041))", "MULTILINESTRING ((-114.06876825342002 50.96863425573366, -114.0714654457777 50.96864796962547))", "MULTILINESTRING ((-114.03372206187294 51.053232488239935, -114.03370889695204 51.05088210489753))"),
    VOLUME = c(22000,5000,5000))

轉換為 sfc_MULTILINESTRING 后

data$geom <- st_as_sfc(data$multilinestring)

我在鏈接中嘗試了相同的代碼(我在上面分享),但我無法弄清楚顏色強度。

leaflet((data$geom) %>% 
  addTiles() %>% 
  addPolygons() 

上面的代碼繪制了多線字符串,但我不知道如何根據它們的 VOLUME 更改多線字符串的顏色強度。

這就是我最終想要得到的(使用我的完整數據集):

http://www.gisresources.com/free-us-traffic-count-data-use-maptitude-2018-mapping-software/

這是我的系統和 R 版本:

平台 x86_64-w64-mingw32
拱 x86_64
操作系統 mingw32
系統 x86_64,mingw32
地位
專業 4
未成年人 0.2
svn rev 78730
語言 R
version.string R 版本 4.0.2 (2020-06-22)

這是您如何做到這一點的方法。 需要指出的幾點:

  • 我使用st_as_sf() ,它將數據幀轉換為 sf object。
  • 對於 Leaflet,您必須創建自己的調色板( colorNumeric()
  • 我將整個 sf object 傳遞到對leaflet()的調用中
data <- data.frame(
  multilinestring = c("MULTILINESTRING ((-114.06036700906716 51.04831941917631, -114.05790835100508 51.04824965329041))", "MULTILINESTRING ((-114.06876825342002 50.96863425573366, -114.0714654457777 50.96864796962547))", "MULTILINESTRING ((-114.03372206187294 51.053232488239935, -114.03370889695204 51.05088210489753))"),
  VOLUME = c(22000,5000,5000)
)
data$geom <- st_as_sfc(data$multilinestring)
data <- st_as_sf(data)

pal <- colorNumeric(
  palette = "Reds",
  domain = data$VOLUME
)

leaflet(data) %>% 
  addTiles() %>%
  addPolylines(color = ~pal(VOLUME))

最后,您需要自定義您的調色板,因為低容量鏈接以難以看到的淺色顯示。 有關更多指導,請參見此處: https://rstudio.github.io/leaflet/colors.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM