R数据可视化-动态、交互式地图神器(二)地图与定位
目录
Leaflet/LeafletCN 系列
本节结构:
- 什么是Leaflet
- 基本语法
- 加载地图
- 视图定位
- 支持数据
【什么是Leaflet】
An open-source Javascript library for mobile-friendly interactive maps(官方话),其实就是JS包,强大之处在于可直接加载OpenStreetMap, Mapbox and CartoDB等底图数据。我们使用的LeafletR是用R的语法封装了JS版的Leaflet,可以在plot窗口中利用H5绘制地图。
【基本语法】
leaflet() %>% addxxx()
首先用leaflet生成地图容器,用“%>%”管道增加新图层,并且把前面语句(语句)传递给下一个语句,作为第一个参数使用。上面实际等价于:
m <- leaflet()
t <- addxxx(m)
【加载地图】
- addTiles
- addProviderTiles(调用各种源)
# openStreetMap
leaflet() %>% addTiles()
# 卫星地图
leaflet() %>% addProviderTiles("Esri.WorldImagery")
【视图定位】
- setView() 设置地图的中心和缩放比例
- fitBounds() 设置视图在[lng1,lat1]-[lng2,lat2]的长方形中
- setMaxBounds 设置视图在[lng1,lat1]-[lng2,lat2]的长方形中,并放大至最大
leaflet() %>% addTiles() %>% setView(lat = 31.277106, lng = 121.487284, zoom = 14)
这样就可以看到母校了,666
【支持数据】
Leaflet包支持各种与空间信息有关的对象,包括:
- R基础对象
- 由经纬度组成的矩阵
- 带有经纬度字段的数据框
- sp包相关(没用过)
- SpatialPoints[DataFrame]
- Line/Lines
- SpatialLines[DataFrame]
- Polygon/Polygons
- SpatialPolygons[DataFrame]
我们试试最简单的方法,随机把10个点画上去
df = data.frame(Lat = 31+ rnorm(10,0,1), Lon = 121 + rnorm(10,0,1))
df %>% leaflet() %>% addTiles() %>% addMarkers()
待续未完~
转载自:https://blog.csdn.net/weixin_33828101/article/details/87135082