leaflet 包可以在地图背景上,对经纬度的位置信息进行可视化。
本文介绍几个 R 语言调用 leaflet 包,进行可视化的常用语句。
leaflet 包的调用:
library(leafletCN)
library(leaflet)
library(leaflet.extras) # 热力图等附加功能
地图背景设置:
province <- "北京市"
map = leafletGeo(province)
map = leaflet(map)
map = amap(map) # 使用高德地图背景
或:
map <- leaflet() %>% addTiles()
小圆点绘制:
map <- addCircles(map,
lng = as.numeric(df$lgt), lat = as.numeric(df$lat),
color = randomColor())
图标绘制:
icon_tmp <- makeAwesomeIcon(icon = 'home', library = 'glyphicon',
markerColor = 'blue', iconColor = 'white',
spin = FALSE, extraClasses = NULL) # icon参数可选'home', 'envelope'等
map <- addAwesomeMarkers(map,
lng = df$lng, lat = df$lat,
icon = icon_tmp,
popup = paste(as.character(point), "位置"))
连线绘制:
map <- addPolylines(map,
lng = c(df$起点经度, df$终点经度), lat = c(df$起点纬度, df$终点纬度),
color = 'grey', opacity = 0.2)
多边形绘制:
first_point <- df_route[1, ]
route_points <- rbind(df_route, first_point)
route_points <- data.frame(route_points$lng, route_points$lat, stringsAsFactors = FALSE)
names(route_points) <- c('lng', 'lat')
route_points$lng <- as.numeric(route_points$lng)
route_points$lat <- as.numeric(route_points$lat)
route_polygon <- SpatialPolygons(list(Polygons(list(Polygon(route_points)), ID = 1)))
map = addPolygons(map,
data = route_polygon,
color = 'yellow', weight = 3, fillOpacity = 0, opacity = 1)
热力图绘制:
需要调用 leaflet.extra
map <- addHeatmap(map,
lng = as.numeric(df$lng), lat = as.numeric(df$lat),
intensity = sqrt(as.numeric(df$weight)),
max = 20.0,
radius = 12,
blur = 15,
data = df)