R 小册子

R 小册子,r,colors,leaflet,polygons,R,Colors,Leaflet,Polygons,我仍然在做这个R传单的自我学习项目,我正在尝试在北卡罗来纳州罗利市威克县的一些多边形中着色。下面是我正在尝试着色的图像 基本上,我正试图让每个多边形的颜色不同。我尝试添加多边形,但我想我没有正确的多边形数据。我看过颜色分类,但我似乎没有什么想法。下面是我的代码。我甚至尝试取消测试GeoJSON数据并创建一个因子调色板,但这似乎不起作用 library(shiny) library(leaflet.extras) library(geojsonio) library(rgdal) dataur

我仍然在做这个R传单的自我学习项目,我正在尝试在北卡罗来纳州罗利市威克县的一些多边形中着色。下面是我正在尝试着色的图像

基本上,我正试图让每个多边形的颜色不同。我尝试添加多边形,但我想我没有正确的多边形数据。我看过颜色分类,但我似乎没有什么想法。下面是我的代码。我甚至尝试取消测试GeoJSON数据并创建一个因子调色板,但这似乎不起作用

library(shiny)
library(leaflet.extras)
library(geojsonio)
library(rgdal)

dataurl <- 'https://opendata.arcgis.com/datasets/f5c3b84a6fcc499d8f9ece78602258eb_0.geojson'
data <- geojson_read(dataurl, method = 'web', parse = FALSE, what = 'list')

wake <- readOGR(dataurl)
wake$zips <- factor(sample.int(39L, nrow(wake), TRUE))

#bikedata <- 'D:/bicycle-crash-data-chapel-hill-region.geojson'
#bike <- geojson_read(bikedata)

vtdata <- 'http://geodata.vermont.gov/datasets/4c206846699947429df59c8cb552ab5c_11.geojson'
vt <- geojson_read(vtdata)

factpal <- colorFactor(topo.colors(39), wake$zips)

ui <- shinyUI(
    fluidPage(
        leafletOutput("map", width = "100%", height = "900px")
    )
)

server <- function(input, output) {

    wakegeojson <- reactive({
        data
    })

    #bikegeojson <- reactive({
    #    bike
    #})

    vtgeojson <- reactive({
        vt
    })

    output$map <- renderLeaflet({
        leaflet() %>%
            addTiles() %>%
            setView(-93.65, 42.0285, zoom = 4)

    })

    observe({
        leafletProxy("map") %>%
            addWMSTiles("http://mesonet.agron.iastate.edu/cgi-bin/wms/nexrad/n0r.cgi",
            layers = "nexrad-n0r-900913",
            options = WMSTileOptions(format = "image/png", transparent = TRUE),
            attribution = "") %>%
            addGeoJSON(wakegeojson(), weight = 3, fill = factpal) %>%
            #addGeoJSON(bikegeojson()) %>%
            addGeoJSON(vtgeojson(), fill = FALSE, color = "black")
    })
}

app <- shinyApp(ui = ui, server = server)
runApp(app, launch.browser = TRUE)
库(闪亮)
图书馆(单张、附加资料)
图书馆(geojsonio)
图书馆(rgdal)

dataurl我会切换到
sf
。您可以直接加载geojson并生成一个Multipolygon和一个multileString对象,它的读取速度也比
readOGR
快得多

然后您可以将这些对象放入
addPolygons
addPolylines

以下示例应该有效:

library(shiny)
library(leaflet.extras)
library(geojsonio)
library(rgdal)
library(sf)

dataurl <- 'https://opendata.arcgis.com/datasets/f5c3b84a6fcc499d8f9ece78602258eb_0.geojson'
wake <- st_read(dataurl)
wake$zips <- factor(sample.int(39L, nrow(wake), TRUE))

vtdata <- 'http://geodata.vermont.gov/datasets/4c206846699947429df59c8cb552ab5c_11.geojson'
vt <- st_read(vtdata)

factpal <- colorFactor(topo.colors(39), wake$zips)

ui <- shinyUI(
  fluidPage(
    leafletOutput("map", width = "100%", height = "900px")
  )
)

server <- function(input, output) {

  wakegeojson <- reactive({
    wake
  })

  vtgeojson <- reactive({
    vt
  })

  output$map <- renderLeaflet({
    leaflet() %>%
      addTiles() %>%
      addPolygons(data=wakegeojson(), color=factpal(wake$zips)) %>%
      addPolylines(data=vtgeojson(), color="red")
  })
}

app <- shinyApp(ui = ui, server = server)
runApp(app, launch.browser = TRUE)
库(闪亮)
图书馆(单张、附加资料)
图书馆(geojsonio)
图书馆(rgdal)
图书馆(sf)

dataurl我不知道你可以用addPolygons和addPolylines替换addGeoJson。sf图书馆也做什么?它是否将geojson文件作为形状文件打开?它将geojson作为简单功能打开。你可以读更多。您可以将
sf
包视为
sp
的后续模型,但其运行速度更快,结构更为一致。