R语言地图可视化—Baidumap包和REmap包

本文介绍Baidumap包和REmap包的安装和使用方法两部分,REmap和Baidumap包的github下载地址:https://github.com/lanxingyue25/RBaidumap

一、安装方式

1、Baidumap包可通过以下方式安装:

library(devtools)
install_github('badbye/baidumap')

 2、REmap包需要在github上下载压缩包,在Rstudio里面通过Tools—install packages—install from 里选择Pckage Archive File(.zip;tar.gz)的方式安装本地压缩包。

二、使用方法

1、Baidumap包:

(1)getbaidumap函数:

用法:getBaiduMap(location, width = 400, height = 400, zoom = 10, scale = 2, color = "color", messaging = TRUE)

参数:
location:包含经度和维度的向量、矩阵,或者是一个字符串表示的地址;经纬度和地址将作为地图的中心点;
width,height:map的宽和高;
zoom:map的缩放比例,值为整数,从3(洲)到21(building),默认值是10;
scale:像素数;
color:"color" or "bw",表示有色或者是黑白;
messaging:取值为TRUE或FALSE,决定是否输出下载数据的信息;

(2)getCoordinate函数:返回地址的经纬度

用法:getCoordinate(address, city = NULL, output = "json", formatted = F)

参数:
address:一个字符串表示的地址;
city:可选项,地址所在的城市
output:json或者xml格式
formatted:F返回原有的json或者xml格式,而T返回的是经纬度的矩阵

(3)getPlace函数:返回所有搜索地址的经纬度、地址、名字

getPlace(place = 'XXX', city = "XXX")

参数:
place:你想要搜索的地方
city:城市

(4)getRoute函数:

一个完整示例代码:

library(ggmap)
library(baidumap)
options(baidumap.key = 'XXX')  (这里的key是你申请的百度API**)
sdmap <-getBaiduMap('山东',color = 'color', zoom = 7,
                    scale = 2,messaging = TRUE)
data <- read.csv("XXX.csv")
ggmap(sdmap) +
  geom_point(data = data[data$是否为重大危险源=='是',],
             aes(x=LNGB,y=LATB,colour=是否为重大危险源),
             size=2)+
  geom_point(data = data[data$是否为重大危险源=='否',],
             aes(x=LNGB,y=LATB,colour=是否为重大危险源),
             size=2)+
  labs(title="XXX",x="经度",y="纬度")+
  theme(plot.title = element_text(hjust = 0.5))+
  scale_colour_manual(values = c('blue','red'))
ggsave("C:/Users/lenovo/Desktop/map.jpg",width = 8, height = 8)   
2、REmap包:(参考链接:https://www.jianshu.com/p/31c9194c95f3

(1)mapNames( ):可提供国家、省份、城市列表

(2)get_city_coord( ):返回某个省份或者城市的经纬度

(3)get_geo_position( ):返回一批城市的经纬度数据

(4)get_theme( ):

用法:get_theme(theme = 'Dark',lineColor = 'Random',backgroundColor = '#1b1b1b',titleColor = '#fff',borderColor = 'rgba(100,149,237,1)',regionColor = '#1b1b1b',labelShow = T,pointShow = F,pointColor = 'gold')

参数:

theme:为总体配色,默认选项有“Dark”、“Bright”、“Sky”、“none”;

lineColor:为线条颜色,默认是随机, 也可自行设置,如’red’;

backgroundColor:为地图外背景颜色;

titleColor:为标题颜色;

borderColor:为地图中地域边缘颜色,不同省份、城市的边缘;

regionColor:为地图显示的颜色;

labelShow:为逻辑参数,是否显示地域名称,默认为T,即显示,只用于remapC函数;

pointShow:为逻辑参数,是否显示地域所在点,默认为F,不显示,只用于remapC函数;

pointColor:为pointShow中点的颜色,只用于remapC函数;

(5)markLineControl( ):remapB和remapC中线条的主题设置,可直接传递给markLineTheme参数

用法:markLineControl(symbol = c(‘none’, ‘arrow’),symbolSize = c(2,2),smooth = T,smoothness = 0.5,effect = T,lineWidth = 1,lineType = 'dotted',color = 'Random')

参数:

symbol:为标记样式,具体指线条两端的标记的形状,两个值分别为起点和终点,经过实际使用symbol参数不可修改;

symbolSize:为线条两端标记大小,对应symbol参数的两个值,实际上第一个值没用,因为开始标记为none;

smooth:为逻辑参数,设置线条是否平滑;

smoothness:为平滑度,smooth参数设置为T时有效,体现线条的弧度,减小到0时为直线;

effect:为逻辑参数,是否显示动态效果;

lineWidth:为线条粗细;

lineType:为线条类型,可选有solid(实线)、dotted(点线)、dashed(虚线);

color:为线条颜色;

注:effect参数在线条太多时,动态效果会失效,这时建议设置为FALSE。在remapB( )函数中通过另外一个参数markLineData也可以设置线条颜色,优先级高于color参数。

(6)markPointControl( ):remapB和remapC中点的主题设置,可直接传递给markPointTheme参数

用法:markPointControl( symbol = ’emptyCircle’,symbolSize = “Random”,effect = T,effectType = ‘scale’,color = “Random”)

参数:

symbol:为点样式,可选项none、circle、rectangle、triangle、diamond、emptyCirle、emptyRectangle、emptyTriangle、emptyDiamond、heart、droplet、pin、arrow、star

symbolSize:为点大小

effect:为逻辑参数,是否显示动态效果

effectType:为动态效果样式,可选scale(放大)和bounce(跳动)

color:为点颜色

(7)remap():绘制流向图

remap(mapdata, title = XXX",subtitle ='XXX',theme = get_theme('Dark'))

参数:

mapdata:为数据框格式的原始数据,包含初始点和终点两列;

title:为主标题;

subtitle:为副标题;

一个完整示例代码:

library(devtools) library(REmap) data <- read.csv("XXX.csv") geodata = data.frame(lon = data$LNGB,                      lat = data$LATB,                      city = data$Address) remapB(markPointData = data.frame(geodata$city),        geoData = geodata,        markPointTheme = markPointControl(effect = F,symbol = "circle",                                          symbolSize = 5,                                          color="red"),        title="XXX")