簡體   English   中英

如何使用 R 中的 Leaflet 將 csv-data 綁定到 geojson

[英]How to bind csv-data to geojson with Leaflet in R

在 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)

我建議使用sf -package。 它是 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做任何你想做的事

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM