读取位置信息

读取位置信息并对位置信息初步处理:

library(lawsonLoc)
loc <- readLoc(system.file('extdata', 'location.csv', package = 'lawsonLoc')) #该数据存储在lawsonLoc中
head(loc)      #原始位置信息为V3(经度),V4(纬度)

去除冗余位置信息

由于重复采样、降低金纬度精度等原因,原始数据存在大量的冗余信息,需要删除这部分数据,降低计算负担

loc1 <- handleLoc(loc)
head(loc1)

找到用户经常出没的两个地点并确定住宅和办公地点

findTwoPlacesdis_thres参数:用户经常出没的两个地点之间的最小距离,数值单位为km 设置dis_thres的目的是为了判断顾客的家庭住址和办公地址,如果不设置该参数可能出现的问题是:用户最经常出没的两个地方很近,比如公司和吃饭地点

twoplaces <- findTwoPlaces(loc1, dis_thres = 3)  #dis_thres设为3km
head(twoplaces)                                 

#确定办公地点,无法判断是否是住宅或办公地点时返回NA
homeOffice <- detectOffice(twoplaces)
head(homeOffice)

通过经纬度获取详细地址

该函数根据百度地图API获取具体地址信息,所以 执行该函数是必须保证良好的网络环境!

getAddress(121.5385, 31.22104) #函数返回列表,包括详细地址、省份、市区、街道四个部分
twoplaces$address <- apply(twoplaces[, list(lon, lat)], 1, function(x){getAddress(x[1], x[2])$detail_address})
head(twoplaces)

绘制单个用户的轨迹

参数:

注意:

输出文件为html文件,文件名格式为path[id].csv

create_pathPlot(id1 = 219, loc = loc)

你可以在当前工作目录下找到path219.html的文件,即为结果。结果如下图所示:

path

绘制多个用户的轨迹

参数:

注意:

create_pathPlots(ids = c(219, 884, 1207), loc = loc, address = homeOffice, suffix = 'a')

你可以在当前工作目录下找到pathPlots_a.html的文件,即为结果。结果如下图所示:

paths

上图中下方有一个输入框select path (1~3),表明有效用户数有3个,可以在输入框内输入1~3的数字。输入后点击submit按键,展现对应顾客的轨迹图,并且在member id框中显示该顾客的ID。

每次只能展现一个用户的至多5条路径,并且将用户的家庭住址和办公地点标出。

绘制用户住宅公司地址热力图

shops <- readShop(filepath = system.file('extdata', 't_shop.csv', package = 'lawsonLoc'))
shops <- shops[area %like% '江阴'] #仅仅显示江阴的店铺地址
create_heatMap(loc = homeOffice, shop = shops)

你可以在当前工作目录下找到density.html的文件,即为结果。结果如下图所示:density

图中最下端有六个按键,分别对应:打开住宅热力图、关闭住宅热力图、打开工作地址热力图、关闭工作地址热力图、显示店铺地址、关闭店铺地址

本包中还有两个html文件,分别演示了热力图和轨迹图:heatmap.html和pathPlots.html



evanwang1990/location documentation built on May 16, 2019, 9:38 a.m.