我使用leaflet.extra包在R-shiny中创建了一个应用程序,放置了一个用户可以在其中绘制多边形的地图,我的目标是能够下载用户以GeoJson或Shapefil(.shp )。我的应用程序如下所示:
ui <- fluidPage(
textOutput("text"),leafletOutput("mymap") )
Run Code Online (Sandbox Code Playgroud)
和服务器:
poly<-reactiveValues(poligonos=list()) #save reactiveValues
output$mymap <- renderLeaflet({
leaflet("mymap") %>%
addProviderTiles(providers$Stamen.TonerLite, #map type or map theme. -default($Stame.TonerLite)
options = providerTileOptions(noWrap = TRUE)
)%>% addDrawToolbar(
targetGroup='draw',
editOptions = editToolbarOptions(selectedPathOptions = selectedPathOptions())) %>%
addLayersControl(overlayGroups = c('draw'), options =
layersControlOptions(collapsed=FALSE)) %>%
addStyleEditor()
})
polygons<- eventReactive(input$mymap_draw_all_features, {
features<-input$mymap_draw_all_features
poly$poligonos<-c(poly$poligonos,features)
return(poly$poligonos)
})
Run Code Online (Sandbox Code Playgroud)
名为“多边形”的eventReactive函数负责记录绘制的多边形(坐标),但我不知道如何保存它们或将其转换为GeoJson或shapefile格式。