首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从.kml导出RShiny或.kmz (用RShiny)

从.kml导出RShiny或.kmz (用RShiny)
EN

Stack Overflow用户
提问于 2022-12-01 13:48:57
回答 1查看 12关注 0票数 0

我有几个星期都有这个问题。我不知道如何让RShiny允许导出.kml或.kmz文件,特别是从源Python包创建的文件。

前天我终于想出来了。我不知道怎么回答,所以我会把它作为其他可能遇到这个问题的人的公认答案。在我的故障排除过程中找不到任何帮助.希望这能帮助下一个人。

EN

回答 1

Stack Overflow用户

发布于 2022-12-01 13:57:43

为了解决这个问题,我搜索了几乎所有我能想到的地方,但是没有任何帮助。我最终通过在R和Python方面的代码的尝试和错误获得了它。下面是我在RShiny中发现的工作:

在ui中,只需确保有一个downloadButton,它的id是您试图用downloadHandler导出的东西的id。在本例中,需要有两个:一个用于'download_kml‘,另一个用于'download_kmz’。

代码语言:javascript
复制
server <- function(input,output) {


function_object <- reactive({python_class(args)})

kml_show_object <- reactive({function_object()$show_kml})


#------------------------------------------
# TO EXPORT .KML

output$download_kml <- downloadHandler(

    filename <- function() {
        'export.kml'
    },
    content <- function(file) {
        write(kml_show_object(), file)
    },
    contentType = 'application/vnd.google-earth.kml+xml'
    )

#------------------------------------------
# TO EXPORT .KMZ

output$download_kmz <- downloadHandler(
    filename <- function() {
        'export.kmz'
    },
    content <- function(file) {
        write(kml_show_object(), file)
    },
    contentType = 'application/vnd.google-earth.kmz'
    )
}

shinyApp(ui = ui, server = server)

这是使用Python中的simplekml包来创建kml对象。要使它正确运行(在R端),您不能只创建kml对象。R不知道该怎么处理它。您必须在Python代码中为kml.kml()分配一个变量。在本例中,它是一个名为'show_kml‘的类变量,它在R中本地分配给kml_show_object。

如果您需要帮助生成kml对象的Python代码,我可以编辑它来包含它。

希望这能帮上忙!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74642898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档