如何在globejs()中绘制单个点?

时间:2017-06-14 00:19:09

标签: r

这是我的第一个问题,如果我做错了,那就很抱歉。正如问题所说我想在R中使用globejs()在我的3D Globe中显示一个单点。我正在创建一个带有dashboard()的页面,并且在框()中,我使用来自包threejs的leaflet和globejs() 。我创建了两个numericInput(),一个用于lat,一个用于long但它拒绝工作。我尝试了很多方法,但没有用。不知何故,arcs在我创建的data.frame中运行得很好,这就是现在的基本方式:

output$distPlot <- renderGlobe({
    ja<-c(input$arclat,input$arclong,input$arclat2,input$arclong2);
     m<-data.frame(matrix(ja,ncol=4,nrow=1));
      globejs(bg="white",lat=input$lat,long=input$long,value=45,arcs=m,arcsColor = "#99aaff", atmosphere = input$icon, arcsHeight = 0.1,arcsOpacity = 1 )
})

我希望你能理解我的问题。请帮助。

1 个答案:

答案 0 :(得分:0)

以下是如何绘制一个点:

library(shiny)
library(threejs)
app <- shinyApp(
  ui = bootstrapPage(
    numericInput('long', 'longitude', 13.40),
    numericInput('lat', 'latitude', 52.52),
    globeOutput('plot')
  ),
  server = function(input, output) {
    output$plot <- renderGlobe({
      globejs(
        lat=c(NA, input$lat), 
        long=c(NA, input$long), 
        pointsize=5,
        value=100)
    })
  }
)
runApp(app, launch.browser = TRUE)

enter image description here

似乎globejs需要borth参数latlong中至少长度为2的向量 - 可能是一个错误?