本文介绍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")