gpt4 book ai didi

r - 如何渲染 HTML 风格的传单标签?

转载 作者:行者123 更新时间:2023-12-02 18:51:15 25 4
gpt4 key购买 nike

我需要为 map 上的每个现有标记添加标签(不是 poups)。我创建了 labelText 变量来存储标签的 HTML。现在,当我使用它时,奇怪的事情发生了——每个标签显示来自整个数据集的数据,而不是分配给单个点的数据:

library(shiny)
library(leaflet)
library(dplyr)
library(sf)

ui <- fluidPage(
leafletOutput("map")

)

server <- function(input, output, session) {

coords <- quakes %>%
sf::st_as_sf(coords = c("long","lat"), crs = 4326)

labelText <- paste0("<b>Depth: </b>",coords$depth,"<br/>",
"<b>Mag: </b>",coords$mag,"<br/>",
"<b>Stations: </b>",coords$stations)

output$map <- leaflet::renderLeaflet({
leaflet::leaflet() %>%
leaflet::addTiles() %>%
leaflet::setView(172.972965,-35.377261, zoom = 4) %>%

leaflet::addCircleMarkers(
data = coords,
stroke = FALSE,
radius = 6,
label = ~htmltools::HTML(labelText)
#label = ~htmltools::htmlEscape(labelText)
#label = ~labelText
)
})
}

shinyApp(ui, server)

我尝试了 HTMLhtmlEscape 的不同组合(或者它们都没有),但它仍然无法正常工作。您可以取消注释 label 的代码并测试它是如何工作的。我需要的是带有每个单独标记数据的 html 样式标签。

最佳答案

如果您将 HTML 函数lapplylabeltext 向量,它会工作正常:

leaflet::addCircleMarkers(
data = coords,
stroke = FALSE,
radius = 6,
label = lapply(labelText, htmltools::HTML)
)

关于r - 如何渲染 HTML 风格的传单标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66754341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com