我一直试图用hcmap从highcharter包中绘制一个choropleth地图;我从我自己的shapefile中获得了多边形,因为它是一个不在highmap收藏列表中的地图。
为此,我首先设法将shapefile转换为GeoJson文件,如下所述:https://blog.exploratory.io/creating-geojson-out-of-shapefile-in-r-40bc0005857d
后来,我成功地使用包geosonio绘制了地图,如下所述:http://jkunst.com/highcharter/highmaps.html#geojsonio-package
但是,我不知道如何将数据和值合并到我的地图中绘制的多边形中。所有可用的示例都合并为data.frame格式的映射数据,在转换为GeoJson时我会丢失该格式。
到目前为止,这是我的代码:
library(rgdal)
library(geojsonio)
library(highcharter)
#Get map from shapefile
Mymap <- readOGR(dsn="Mymap", "Mymap", verbose = FALSE) %>%
spTransform(CRS("+proj=longlat +ellps=GRS80 +datum=WGS84"))
#Transform to geoJson
MymapJSON <- geojson_json(Mymap)
#Use geojsonio to make data compatible with hcmap
Myhcmap <- jsonlite::fromJSON(MymapJSON, simplifyVector = FALSE)
Myhcmap<- geojsonio::as.json(Myhcmap)
#Draw map:
highchart(type = "map") %>%
hc_add_series(mapData = Myhcmap, showInLegend = T)结果:

我怎样才能把更多的数据放到GeoJson中,这样我才能画出合唱曲呢?
发布于 2019-07-15 15:18:59
一段时间前,我终于自己找到了一个解决方案,它相当简单,但是由于它没有很好地记录如何向GeoJSON添加数据,我将在这里展示它:
#Work with the map until this step:
Myhcmap <- jsonlite::fromJSON(MymapJSON, simplifyVector = FALSE)
#This part was unnecessary:
#Myhcmap<- geojsonio::as.json(Myhcmap)
#Then, write your map like this:
highchart() %>%
hc_add_series_map(Myhcmap, df, value = "value", joinBy = "ID")其中:
df是您想要附加的数据
value是要为地图着色的数据的列名。
joinBy是连接键变量。
https://stackoverflow.com/questions/56638880
复制相似问题