html - 使用 htmltools 在传单地图中创建标签会产生微小的标签
问题描述
创建传单地图。第一步,指定标签。传单上使用的代码 github puts
%>% lapply(htmltool::HTML)
在 sprintf() 函数之后。但是,使其将标签创建为类型:“list”导致错误:“sum(sapply(label, function(x) { : invalid 'type' (list) of argument) 中的错误”
所以要尝试解决这个问题,我只需加载 htmltools 库并使用代码
HTML(sprintf(...))
这样做可以工作并运行地图,但是,标签显示为没有信息的小框(请参见下面的图片链接)
我不知道这是否与 sprintf() 中的代码有关,还是与 HTML() 有关。
奇怪的是 %>% lapply 方法工作得很好,但是发生了一些事情,现在它给出了上面提到的错误
labels.dest2 <- sprintf("<div style = 'overflow-wrap: anywhere;'><strong>%s <br/>%s Destinations</div><br/>%s Euclidean Miles from LAX on average<br/>%s minutes between OD tweets </div><br/>%s Miles from LAX on average</div><br/>%s minutes from LAX on average</div>",
puma.spdf$NAME,
puma.spdf$Dest_pt_count,
puma.spdf$Avg_Euc_Dist_Mi,
puma.spdf$Avg_tweetTime,
puma.spdf$Avg_RtDist_Mi,
puma.spdf$Avg_RtTime_min) %>% lapply(htmltools::HTML)
leaflet() %>% addTiles() %>% etc...
完整代码在这里
## Map with OD data and travel stats ##
labels.dest2 <- HTML(sprintf("<div style = 'overflow-wrap: anywhere;'> <strong>%s <br/>%g Destinations</div><br/>%s Euclidean Miles from LAX on average<br/>%s minutes between OD tweets </div><br/>%s Miles from LAX on average</div><br/>%s minutes from LAX on average</div>",
puma.spdf$NAME,
puma.spdf$Dest_pt_count,
puma.spdf$Avg_Euc_Dist_Mi,
puma.spdf$Avg_tweetTime,
puma.spdf$Avg_RtDist_Mi,
puma.spdf$Avg_RtTime_min))
leaflet() %>% addTiles() %>%
setView(lng=-118.243683, lat=34.1, zoom = 9.35) %>%
addEasyButton(easyButton(
icon="fa-crosshairs", title = "Default View",
onClick=JS("function(btn, map) {var groupLayer = map.layerManager.getLayerGroup('Destinations (red)'); map.fitBounds(groupLayer.getBounds());}"))) %>%
addProviderTiles(providers$CartoDB.Positron,
group = "Grey") %>%
addProviderTiles(providers$OpenStreetMap.BlackAndWhite,
group = "OSM") %>%
# Add Polygons
# Destination data
addPolygons(data = puma.spdf,
group = "Destination Density",
fillColor = ~pal.dest(Dest_pt_count),
weight = 1,
opacity = 90,
color = "white",
dashArray = "3",
fillOpacity = 0.5,
highlight = highlightOptions(weight = 2,
color = "#666",
dashArray = "",
fillOpacity = 0.7,
bringToFront = TRUE,
sendToBack = TRUE),
label = labels.dest2,
labelOptions = labelOptions(style = list("font-weight" = "normal", padding = "3px 8px"),
textsize = "15px",
direction = "auto")) %>%
addLegend(values=puma.spdf$Dest_pt_count,
group = "Destination Density",
pal=pal.dest,
title="Destination Density (Dest per PUMA)",
position = "bottomright") %>%
# Add Points
addCircleMarkers(data = D.spdf,
radius = 2,
color = "red",
group = "Destinations (red)",
fillOpacity = 0.5) %>%
addCircleMarkers(data = O.spdf,
radius = 2,
color = "green",
group = "Origins (green)") %>%
# Add Layer Controls
addLayersControl(
baseGroups = c("OSM (default)", "Grey"),
overlayGroups = c("Destinations (red)", "Origins (green)","Destination Density"),
options = layersControlOptions(collapsed = FALSE)
)
解决方案
问题是第一列 puma.spdf$NAME 不是数据集的一部分,并且正在丢弃字符串。检查以确保您要显示的所有变量实际上都是数据集的一部分。
推荐阅读
- javascript - 模态 - JQuery - JS - FullCalendar 上的 Select2 问题
- python - 如何删除 Python “1 of 1 completed”
- r - 我在理解 R 中条件句的语法时遇到问题
- java - Flutter android构建失败
- ios - 为了使用 iOS 13 SDK 构建我的 react native 应用程序,我将 xcode 从 10.3 升级到 11.5,那么为什么我的应用程序不起作用?
- python - 如何从 Wordnet python 中的 json 输入文件中查找 Synset 名称
- twitter-bootstrap - 如何在不为 ex 编写常规类的情况下使用引导网格系统:class-md-8
- capl - 如何将字节数组转换为 CAPL 中的字符串?
- python - 嵌套字典访问正在返回一个列表
- matlab - 从数组中显示等距的 x 轴标签 MATLAB