javascript - 将 Leaflet Deflate 与 Shiny 集成
问题描述
更新
找到这个之后......我稍微调整了这个问题。我已经成功加载并使用 L.deflate 来创建我的“放气功能”。但现在我需要以某种方式从地图中取出我的对象并将它们添加到 deflate 对象中,如 leaflet.deflate 文档中所述。
我正在尝试使用此处的步骤将传单放气插件集成到 Shiny 应用程序中。我已经加载了插件,但现在我只想知道如何从我的多边形层中获取对象并将它们添加到 delate_features 对象中,如文档中所述。
文档步骤
const map = L.map("map").setView([51.505, -0.09], 12);
const deflate_features = L.deflate({minSize: 20});
deflate_features.addTo(map);
// This is the step I am not sure how to handle in the onRender()
const polygon = L.polygon([
[51.509, -0.08],
[51.503, -0.06],
[51.51, -0.047]
]);
polygon.addTo(deflate_features);
测试应用
library(sf)
library(leaflet)
library(htmltools)
library(htmlwidgets)
js_file <- "https://unpkg.com/Leaflet.Deflate@1.3.0/dist/L.Deflate.js"
ui <- fixedPage(
tags$head(tags$script(src = js_file)),
leafletOutput("map")
)
server <- function(session, input, output) {
output$map <- renderLeaflet({
nc <- sf::st_read(system.file("shape/nc.shp", package = "sf"), quiet = TRUE)
leaflet(options = leafletOptions(preferCanvas = TRUE)) %>%
addMapPane(name = "labels", zIndex = 650) %>%
addProviderTiles(providers$Stamen.TonerLabels,
options = providerTileOptions(opacity = 0.35,
updateWhenZooming = FALSE,
pane = "labels")) %>%
addProviderTiles(providers$Stamen.TonerBackground,
options = providerTileOptions(opacity = 0.35,
updateWhenZooming = FALSE)) %>%
addPolygons(data = st_transform(nc, 4326)) %>%
onRender("function(el, x, data) {
const deflate_features = L.deflate({ minSize: 20 });
deflate_features.addTo(this);
// How to select the polygons I already have and add them
// to deflate_features????
}")
})
}
shinyApp(ui, server)
解决方案
推荐阅读
- node.js - 如果在passport-facebook节点js的数据库中找不到用户,则重定向到注册页面
- javascript - 从哪里获得 Paytm CSRF 令牌
- javascript - JSON对象名称未定义,如何访问参数?
- react-native - react-native-fast-image 是否会缓存在 src 中使用 require 加载的图像
- shopware - 商店软件登录不起作用,那么实际问题是什么?
- javascript - 画布 - 在 Firefox 中剪辑图像并使用复合操作“乘法”不像在 Chrome 中那样工作
- ios - 如何为其他开发者提供 App 名称?
- javascript - 基于键及其值的 GroupBy 数组
- python - 使用 matplotlib 绘制分类数据 - 转置 pandas 数据框
- docker - 如何与 kubernetes 集群共享我的谷歌云实例的卷