【问题标题】:create polygon on Rshiny leaflet在 R Shiny 传单中创建多边形
【发布时间】:2018-11-01 06:56:15
【问题描述】:

我想在闪亮的应用程序上创建地图。我使用传单包,但我不知道如何一次创建多个多边形(超过 15000 个) 这是我数据的一部分:

ID_Area num LAT1    LONG1   LAT2    LONG2   latitude    longitude   categorie
102584  929 53.34   -6.27   53.35   -6.26   53.345  -6.265  More than 50
102053  549 53.33   -6.26   53.34   -6.25   53.335  -6.255  More than 50

所以我想在一个有很多正方形的地图上创建一个网格,并且我可以在其中看到“num”。我在网上搜索如何制作这个,但所有教程都是用空间多边形数据框制作的,但我不明白。

例如,我想在第一行有一个像这样的多边形:

a <-53.34,-6.27
b <-53.34,-6.26
c <-53.35,-6.26
d <-53.35,-6.27
poly <- a,b,c,d,NUM,Categorie

对不起,我是 R 的新手,这可能吗? 并为 15000 行创建一个函数? 谢谢

【问题讨论】:

  • 您可以尝试使用sincos 围绕中心创建多边形。但不知道你是否搜索。我使用了 sinus-cosinus 方法,例如这里:github.com/region-spotteR/PrepPlot

标签: r shiny leaflet polygon


【解决方案1】:

从您的示例代码中不清楚您到底想要什么,因为代码不能像那样执行。也许这个小例子可以说明 R 中 SpatialObjects 的基础知识:

library(sp)
Sr1 = Polygon(cbind(c(2,4,4,2,2),c(2,2,5,5,2)))
Sr2 = Polygon(cbind(c(5,12,12,5),c(5,5,12,12)))
Sr3 = Polygon(cbind(c(4,4,5,5,4),c(5,3,3,5,5)))

Srs1 = Polygons(list(Sr1), "s1")
Srs2 = Polygons(list(Sr2), "s2")
Srs3 = Polygons(list(Sr3), "s3")
SpP = SpatialPolygons(list(Srs1,Srs2,Srs3), 1:3)

SpDf <- SpatialPolygonsDataFrame(SpP, data=data.frame(ID=c(1,2,3)), match.ID = F)

library(leaflet)
leaflet() %>% 
  addPolygons(data=SpDf, label= as.character(SpDf$ID))

您也可以在此处查看答案,因为它可能与您的要求非常相似。 (How to build Quadrants)

这就是您将它包含在闪亮应用中的方式:

library(shiny)
ui <- fluidPage(
  leafletOutput("map")
)

server <- function(input, output){
  output$map <- renderLeaflet({
    leaflet() %>% 
      addPolygons(data=SpDf, label= as.character(SpDf$ID))
  })
}
shinyApp(ui,server)

【讨论】:

    猜你喜欢
    • 2020-02-03
    • 2015-07-10
    • 1970-01-01
    • 1970-01-01
    • 2015-09-12
    • 1970-01-01
    • 2018-01-24
    • 2017-06-25
    • 2016-11-10
    相关资源
    最近更新 更多