如何在R语言Leaflet中实现0.25倍缩放增量?常规方法不可用
解决R Leaflet无法设置0.25缩放增量的问题
既然你无法通过初始化配置或leafletOptions设置缩放增量,可以尝试用htmlwidgets::onRender()在地图渲染后注入JS代码,修改已创建的地图实例参数:
修改后的完整代码
library(leaflet) library(htmlwidgets) map <- leaflet(Reservoir_locations) %>% addTiles() %>% setView(lat = 52.5, lng = -3.005, zoom = 9) %>% addProviderTiles(providers$JusticeMap.asian) %>% addCircleMarkers( fillColor = "Blue", radius = 14, fillOpacity = 1, stroke = F, ~LON, ~LAT) %>% addScaleBar(options = scaleBarOptions( maxWidth = 300, metric = TRUE, imperial = TRUE, updateWhenIdle = TRUE )) %>% # 注入JS代码修改缩放增量 onRender(" function(el, x) { // 获取地图实例 var map = this; // 设置缩放步长和每次缩放增量为0.25 map.options.zoomSnap = 0.25; map.options.zoomDelta = 0.25; // 刷新地图应用设置 map._resetView(map.getCenter(), map.getZoom(), true); } ") map
关键说明
onRender()会在地图渲染完成后执行传入的JS代码,直接操作Leaflet地图实例- 同时设置
zoomSnap(缩放时的最小步长)和zoomDelta(缩放按钮每次的增减量)为0.25,确保两者一致 - 最后调用
_resetView()刷新地图,让新的缩放设置立即生效
内容的提问来源于stack exchange,提问作者ASHooper93
相关产品推荐
相关产品推荐

