如何在R中使用Leaflet将csv数据绑定到geojson

时间:2019-04-17 10:25:23

标签: r shiny geojson r-leaflet

在R(发光)中,我正在使用Leaflet。我想使用带有多边形的geojson文件;每个多边形都有一个ID。我还想对csv文件使用geojson中每个id的度​​量。 我的问题是:我必须先合并这些文件,然后才能将它们与传单一起使用,还是可以在传单中单独使用来自CSV的数据? 而且,如果必须先合并它们,那么如何合并这些文件并在结果中保留多边形,因为如果使用功能合并,则结果将不是SpatialPlolygonsDataframe。

我的代码

library(viridis)
library(geojsonio)
library(leaflet)


setwd('H:/Mijn documenten/R')

Neighborhoods <- geojsonio::geojson_read("Buurten/BuurtGrHTB2017_2.geojson",
                                      what = "sp")

deData <- read.csv(file="Buurten/Gegevens.csv", header=TRUE, sep=";")

MapData <- merge(Neighborhoods,deData,by='BU_CODE')

pal <- colorNumeric("viridis", domain = NULL, reverse=TRUE)

leaflet(MapData) %>%
  addTiles() %>%
  addPolygons(stroke = FALSE, smoothFactor = 0.3, fillOpacity = 1, fillColor=~pal(ifelse(P_GEHUWD<0,NaN,P_GEHUWD))) %>%
  addLegend(pal = pal, values = ~(ifelse(P_GEHUWD<0,NaN,P_GEHUWD)), title="Aantal Inwoners", opacity = 1.0)

1 个答案:

答案 0 :(得分:1)

我建议使用sf软件包。这是R中最新一代的空间数据操作,更易于处理。

library(sf)
library(tidyverse)
library(geojsonsf)


Neighborhoods  <- geojson_sf('H:/Mijn documenten/R/Buurten/BuurtGrHTB2017_2.geojson')


deData <- read.csv(file='H:/Mijn documenten/R/Buurten/Gegevens.csv', header=TRUE, sep=";")

inner_join(Neighbourhoods, deData, by = 'BU_CODE') -> MapData 

或不包含dplyr

MapData <- merge(Neighbourhoods, deData, by = 'BU_CODE')

从那里您可以使用leaflet

做任何您想做的事