一、基础介绍
在做地图数据可视化展示时,我们可以选择直接把数据映射到每个省份图形的颜色要素上,leafletCN包提供了非常方便的函数来实现,具体参考Github文档,下面照搬官文的例子做简要说明:
# 加载包
library(leafletCN)
library(leaflet)
library(readr)
library(tidyverse)
library(rgeos) # gCentroid()
# setwd("...")
# 使用Rmarkdown运行脚本时,会显示 Warning message: In strsplit(code, "\n", fixed = TRUE) :
# input string 1 is invalid in this locale--暂时无法解决,不影响使用。
dat <- data.frame(name = regionNames("china"), # regionNames获取省份名称
value = runif(34))
# geojsonMap函数将value映射到省份区域的颜色上
geojsonMap(dat, mapName = "china")
但是当我们仅想少数几个省份数据时,映射到区域颜色的方式就不这么好看了:
dat2 <- dat[1:5,]
geojsonMap(dat2, mapName = "china")
此时,将数据可视化在省份区域中心标签上的方式更合理,而加标签的前提是可以准确定位省份级市级区域的中心经纬度坐标,那么如何获取呢?下面就用提取sp对象 + gCentroid()
的方式讲解提取过程