R语言之数据可视化---坐标定位包baidumap
包的github下载地址:https://github.com/badbye/baidumap
一.安装方式:
可见作者关于安装的文章
二.使用方法:
- 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:逻辑语句,决定是否输出下载数据的信息
- getCoordinate函数:根据地址得到经纬度(比较常用):
getCoordinate(address, city = NULL, output = "json", formatted = F)
参数:
address:地址
city:可选项,地质所在的城市
output:json或者xml格式
formatted:F返回原有的json或者xml格式,而T返回的是经纬度的矩阵
例子:
getCoordinate('同济科技广场',output = 'xml')#xml
同济科技广场
"<?xml version="1.0" encoding="utf-8"?>\n<GeocoderSearchResponse>\n\t<status>0</status>\n\t<result>\n\t\t<location>\n\t\t\t<lng>120.339932776</lng>\n\t\t\t<lat>36.0885120359</lat>\n\t\t</location>\n\t\t<precise>1</precise>\n\t\t<confidence>80</confidence>\n\t\t<level>UNKNOWN</level>\n\t</result>\n</GeocoderSearchResponse>\n\n"
getCoordinate('同济科技广场',output = 'json')
同济科技广场
"{"status":0,"result":{"location":{"lng":120.33993277617836,"lat":36.08851203594274},"precise":1,"confidence":80,"level":"UNKNOWN"}}"
getCoordinate(c('同济科技广场','常熟理工东南校区','常熟理工东湖校区'),formatted = T)
longtitude latitude
同济科技广场 120.3399328 36.08851204
常熟理工东南校区 120.8314860 31.66944605
常熟理工东湖校区 115.9101483 28.69237515
- getLocation:通过经纬度得到地址
location:经纬度
output:json或者xml格式
formatted:是否返回一个较好的结果
pois:是否返回这个位置周围的PIO
loc =
matrix(c(115.183148,39.629221,117.151659,39.955654,116.746918,39.358383), byrow=T, ncol=2)location = getLocation(loc, formatted = T)
location
lon=115.183148;lat=39.629221 lon=117.151659;lat=39.955654 lon=116.746918;lat=39.358383
"河北省保定市涞水县" "河北省廊坊市三河市黄闽路" "河北省廊坊市安次区S272(廊崔线)"
- getPlace函数:返回地图搜索结果
getPlace(place = NULL, city = "北京")
参数:
place:你想要搜索的地方
city:城市
返回值:数据框dataframe:包含名字、经纬度、地址等
js_college<-getPlace('餐厅','常熟')
Get 400 records, 20 page.
Getting 0 th page
Getting 1 th page
Getting 2 th page
Getting 3 th page
Getting 4 th page
Getting 5 th page
Getting 6 th page
Getting 7 th page
Getting 8 th page
Getting 9 th page
Getting 10 th page
Getting 11 th page
Getting 12 th page
Getting 13 th page
Getting 14 th page
Getting 15 th page
Getting 16 th page
Getting 17 th page
Getting 18 th page
Getting 19 th page
Getting 20 th page
Done!
head(js_college)
name address lat lon
1 渡口饭店(1号店) 江苏省苏州市常熟市兴港路 31.725805 121.055062
2 王四酒家 虞山北路358号(近常熟国际饭店) 31.675453 120.735216
3 肯德基(梅李餐厅店) 梅李镇通江路11号银河苑1区5幢123-124号一二层 31.714455 120.880523
4 幸福小灶饭店 近郊珠江路99号(王梓楼足浴旁) 31.668996 120.773694
5 金海华常熟总店 苏州近郊常熟市方塔街83号近苏苑街近苏宁电器 31.649494 120.747700
6 大方圆酒家(新颜东路店) 苏州近郊常熟市新颜东路58号 31.649959 120.778824
telephone
1 (0512)52646608,13706239111
2 (0512)52849999,(0512)52849777
3 4008828823
4 (0512)52032866
5 (0512)52788888,(0512)5270 2333
6 (0512)52999997
- getRoute函数:通过搜索得到路线
getRoute(...)
参数:
origin:起点
destination:终点
mode:出行方式,'walk','transit'
region:起点和终点所在区域,若不在同一地区,分别用origin_region和destination_region
tactics:10(不走高速), 11(默认, 最短时间), 12(最短路径).
coord_type:'bd09ll'(default), 'gcj02'(which Google map and Soso map are using), 'wgs84' for GPS devices.
返回值:dataframe:包含经纬度
route<-getRoute('常熟理工东南校区','常熟理工东湖校区')
head(route)
lon lat
1 120.7844034 31.59385505
2 120.7846135 31.59396463
3 120.7846635 31.59412457
4 120.7846635 31.59412457
5 120.7833428 31.59547797
6 120.7832628 31.59557824