从非highmap-collection地图制作一个Choropleth

时间:2019-06-17 21:02:06

标签: r highcharts geojson r-highcharter

我一直在尝试使用hcmap包中的highcharter制作一个声色图;我从自己的shapefile中获取了多边形,因为它是不在highmap集合列表中的地图。

为此,首先我设法将shapefile转换为GeoJson文件,如下所述: This is the menu I am trying to edit (Notifications and actions page)

后来,我设法使用包geosonio绘制了地图,如下所述: https://blog.exploratory.io/creating-geojson-out-of-shapefile-in-r-40bc0005857d

但是,我不知道如何将具有值的数据框合并到地图中绘制的多边形中。所有可用的示例都将合并到data.frame格式的mapdata中,在转换为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)

结果:

http://jkunst.com/highcharter/highmaps.html#geojsonio-package

¿我如何将其他数据放入GeoJson中,以便绘制一个圆度?

1 个答案:

答案 0 :(得分:0)

前段时间我终于找到了自己的解决方案,它相当简单,但是由于没有很好地记录如何向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是连接键变量

相关问题