首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从一张非高地图收集的地图上画一个合唱图。

从一张非高地图收集的地图上画一个合唱图。
EN

Stack Overflow用户
提问于 2019-06-17 21:02:06
回答 1查看 497关注 0票数 1

我一直试图用hcmaphighcharter包中绘制一个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时我会丢失该格式。

到目前为止,这是我的代码:

代码语言:javascript
复制
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中,这样我才能画出合唱曲呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-15 15:18:59

一段时间前,我终于自己找到了一个解决方案,它相当简单,但是由于它没有很好地记录如何向GeoJSON添加数据,我将在这里展示它:

代码语言:javascript
复制
#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是连接键变量。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56638880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档