如何移除Leaflet水印但保留OpenStreetMap版权标识?
仅保留OpenStreetMap版权标识的解决方法
要去掉Leaflet水印但保留©OpenStreetMap版权,不用全关版权控件,有两种简洁的实现方式:
方法一:通过JS渲染修改控件内容
利用htmlwidgets::onRender直接修改Leaflet底层控件的前缀(Leaflet水印来自控件前缀),保留OSM版权:
library(leaflet) library(htmlwidgets) leaflet() %>% addTiles() %>% setView(-93.65, 42.0285, zoom = 17) %>% onRender(" function(el, x) { // 清空Leaflet水印前缀 this.attributionControl.setPrefix(''); } ")
方法二:自定义版权控件并替换默认控件
先关闭默认版权控件,再手动添加仅含OSM版权的自定义控件:
library(leaflet) leaflet(attributionControl = FALSE) %>% addTiles() %>% setView(-93.65, 42.0285, zoom = 17) %>% addControl( html = "© OpenStreetMap contributors", position = "bottomright" )
说明
- 方法一更贴合原生Leaflet逻辑,无需手动重复编写版权文本,推荐使用。
- 方法二适合需要完全自定义版权内容或显示位置的场景。
内容的提问来源于stack exchange,提问作者Sean
相关产品推荐
相关产品推荐

