我正在嘗試向彈出視窗添加單獨的影像,以便當您單擊每個位置時,會出現特定于該位置/彈出視窗的影像。我已經想出了如何獲取一張圖片,但它適用于地圖上的所有彈出視窗,而不僅僅是一個。我一直在嘗試使用leafpop包,但我真的不知道如何讓它作業。即使我只使用一張圖片,地圖上也不會顯示任何內容。
這是我的代碼的樣子:
library(leaflet)
library(leafpop)
img = system.file("file/image_name.jpg", package = "jpg")
leaflet(map) %>%
addTiles() %>%
addCircleMarkers(label = map@data$name,
weight = 2,
color = "grey",
fillColor = "red",
fillOpacity = 0.7)%>%
addPopupImages(img, group = "map")
我知道那里有一些我做得不太對的地方。在這一點上,我只想知道是否有可能按照我設想的方式做到這一點。任何幫助表示贊賞。
uj5u.com熱心網友回復:
影像需要在與傳遞給傳單的點長度相同的向量中。這是一個可復制的示例,您可以復制粘貼以幫助您入門:
library(tidyverse)
library(sf)
library(leaflet)
library(leafpop)
pts <- tibble(x = runif(10, 175, 176),
y = runif(10, -38, -37)) %>%
st_as_sf(coords = c("x", "y"), crs = 4326)
img <- glue::glue("https://github.com/IQAndreas/sample-images/blob/gh-pages/100-100-color/{11:20}.jpg?raw=true")
pts$img <- img
leaflet() %>%
addTiles() %>%
addCircleMarkers(data = pts, group = "pts") %>%
addPopupImages(pts$img, group = "pts")
uj5u.com熱心網友回復:
在 Rich Pauloo 的幫助下想通了!這是我最終使用獲取本地影像檔案的代碼。這有點笨拙,但對我來說很有效:
data_name <- readOGR("data/map_file.kml")
data_name2 <- data.frame(data_name)
pts <- st_as_sf(data.frame(data_name2),
coords = c("coords.x1", "coords.x2"), crs = 4326)
img <- c("images/picture_name.jpg") ##did this for every image I wanted to use, in the order
##that matched up with the data points I wanted them associated with.
pts$img <- img
leaflet() %>%
addTiles() %>%
addCircleMarkers(data = pts, group = "pts") %>%
addPopupImages(pts$img, group = "pts", width = 300)
抱歉,如果我寫出代碼的約定不太適合網站。我只是想保持通用性,不包括我的任何檔案名或任何東西。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/328721.html
上一篇:用R中的數字0交換空單元格
下一篇:使用反射遞回獲取私有欄位值
