Как привязать csv-данные к геойсону с помощью Leaflet в R - PullRequest
1 голос
/ 17 апреля 2019

В R (блестящий) я использую Leaflet. Я хочу использовать файл geojson с полигонами; каждый полигон имеет свой идентификатор. Я также хочу использовать CSV-файл с измерениями для каждого идентификатора в геойсоне. У меня вопрос: нужно ли объединить эти файлы, прежде чем я смогу использовать их с листовкой, или я могу использовать данные из 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 Ответ

1 голос
/ 17 апреля 2019

Рекомендую использовать 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

...