如何修改Leaflet中leafpm工具栏的工具提示文字?
在R Shiny中自定义Leafpm工具栏提示文字
要在R的Shiny应用里修改Leafpm工具栏的提示文字,核心思路是给Leaflet地图注入自定义JavaScript代码,直接修改Leaflet.draw的本地化配置。具体可以通过htmlwidgets::onRender()实现,以下是完整的修改示例:
完整代码示例
library(shiny) library(leaflet) library(mapedit) library(leafpm) library(htmlwidgets) # 需加载此包使用onRender函数 ui <- shinyUI( editModUI("map", height=600) ) server <- function(input, output, session) { observe({ # 创建注入自定义JS的leaflet地图 custom_map <- leaflet() %>% addTiles() %>% onRender(" function(el, x) { // 自定义各工具提示文字 L.drawLocal.draw.toolbar.buttons.zoomIn = '放大地图'; L.drawLocal.draw.toolbar.buttons.zoomOut = '缩小地图'; L.drawLocal.draw.toolbar.buttons.marker = '添加标记点'; L.drawLocal.draw.toolbar.buttons.polygon = '绘制田地边界'; L.drawLocal.draw.toolbar.buttons.polyline = '绘制路线'; // 如需修改编辑类工具提示,可添加以下配置 // L.drawLocal.edit.toolbar.buttons.edit = '编辑图形'; // L.drawLocal.edit.toolbar.buttons.remove = '删除图形'; } ") edits <- callModule( editMod, leafmap = custom_map, id = "map", editor="leafpm", editorOptions=list(toolbarOptions = pmToolbarOptions( drawMarker=T, drawPolygon=T, drawPolyline=T, drawCircle=F, drawRectangle=F, removalMode=T, cutPolygon=T, editMode=T )) ) }) } shinyApp(ui = ui, server = server)
关键说明
- 必须加载
htmlwidgets包,依赖其onRender()函数向地图注入JS代码 - 在
onRender()的JS代码块中,通过修改L.drawLocal对象的对应属性自定义提示:L.drawLocal.draw.toolbar.buttons.zoomIn:对应默认"Zoom In"提示L.drawLocal.draw.toolbar.buttons.zoomOut:对应默认"Zoom Out"提示L.drawLocal.draw.toolbar.buttons.marker:对应默认"Draw Marker"提示L.drawLocal.draw.toolbar.buttons.polygon:对应默认"Draw Polygon"提示L.drawLocal.draw.toolbar.buttons.polyline:对应默认"Draw Polyline"提示
- 若需修改编辑、删除等功能的提示,可参照格式添加
L.drawLocal.edit相关配置
内容的提问来源于stack exchange,提问作者Victor Cz
相关产品推荐
相关产品推荐

