Ban*_*you 5 javascript r leaflet shiny
我正在使用Shiny app创建传单地图,但想要将缩放控制的默认位置从topleft更改为topright.
R leaflet包设置topleft源代码中的默认位置.
以下问题:在leaflet.js中自定义放大/缩小按钮,我们可以map.zoomControl.setPosition('topright');用来改变缩放控制的位置.
var map = L.map('map', {
zoomControl: true
});
map.zoomControl.setPosition('topright');
Run Code Online (Sandbox Code Playgroud)
我可以创建一个R函数来设置新的位置zoomControl吗?例如,
zoomControlPosition <- function(map, position = 'topleft') {
# New codes add here
}
Run Code Online (Sandbox Code Playgroud)
我猜它涉及一些js,但我没有经验js.谢谢你的任何建议.
尝试这个:
leaflet(options = leafletOptions(zoomControl = FALSE)) %>%
htmlwidgets::onRender("function(el, x) {
L.control.zoom({ position: 'topright' }).addTo(this)
}") %>%
Run Code Online (Sandbox Code Playgroud)
我弄清楚如何改变位置zoomControl.您可以从我的传单包中找到此功能:https://github.com/byzheng/leaflet/commit/fdf9fb159adbc0e36cc2bd7d7b33c72c17c468f6
这是使用它的最小示例:
library(shiny)
library(leaflet)
ui <- fluidPage(
leafletOutput("mymap")
)
server <- function(input, output, session) {
output$mymap <- renderLeaflet({
leaflet() %>%
addTiles() %>%
zoomControlPosition('topright')
})
}
shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)