R语言 Leaflet包
Leaflet是最流行的开源JavaScript库之一,用于制作移动友好的互动地图。它被世界上许多顶级组织广泛使用。为了在R语言中使用这种相同的功能,我们有leaflet包库。leaflet R包是一个易于使用的库,它的设计充分考虑了简单性、性能和实用性。
特点是
- 支持交互式地图,提供平移和缩放等功能。
- 支持构成地图的各种元素,如地图瓦片、标记、多边形、线条、弹出窗口和GeoJSON。
- 支持从R控制台本身创建完整的动态地图。
- 易于将地图对象嵌入各种标记文件中。
- 还可以在非球面墨卡托投影中显示地图。
- 使用小册子插件库中选择的插件增强地图功能
安装
我们可以通过以下方式在R语言中安装leaflet库。
在R控制台运行上述命令,并选择所需的cran镜像来安装Leaflet R包。
使用leaflet包创建交互式地图
为了使用R语言中的leaflet包创建一个地图部件,我们使用leaflet()函数。leaflet()函数返回一个地图对象,它本身可以被查看,也可以通过添加更多的图层进行修改。基本的leaflet部件显示的是一个空的地图部件,没有瓷砖或标记。
语法: map <- leaflet()
例子: 通过使用leaflet()函数制作的基本地图对象。
输出
将瓷砖添加到地图上
由于上述代码创建了一个空的地图部件。为了给它添加瓷砖以创建所需的地图,我们使用leaflet包的addTiles()函数。默认情况下,如果没有传递参数,它会在地图小部件的顶部创建一个OpenStreetMap地图瓦片。对于自定义地图瓦片,我们将该地图作为参数传给addTiles()函数。
语法: map <- leaflet() %>%addTiles()
例子: 带有OpenStreetMap瓦片的基本地图。
输出
在地图上添加标记
现在,由于我们已经创建了一个基本的地图,它本身并不那么有用。我们现在可以使用leaflet包的addMarkers()函数在地图上添加标记。我们可以通过添加新的图层来添加我们需要的标记。
语法: map <- leaflet() %>%addTiles() %>% addMarkers( lng, lat, popup)
参数
- lng: 决定了标记位置的经度
- lat: 决定了标记位置的纬度
- popup: 决定标记弹出时显示的文字。
例子: 在印度德里有一个标记的互动地图。
输出
图层控制
我们可以使用addTiles()或addMarker()函数向小册子地图添加多个图层。现在,如果我们想让用户选择他/她想看的图层,我们可以通过使用图层控制来实现。图层可以被分配给命名的组。为了在小册子中命名一个组,我们为该层添加组参数。现在,这些组可以由用户来切换开启和关闭。构成地图基础的基础组,例如瓷砖,用单选按钮选择,这样你一次只能选择一个,而可以同时激活多个图层的叠加组则得到复选框。
为了实现图层控制,用group =参数为各个图层添加组名,并使用addLayersControl()添加图层控制层。
语法: leaflet() %> addTiles(group = "One") %>% addProviderTiles( providers$Esri.WorldImagery, group = "Two") %>% addLayersControl(baseGroups = c("One", "Two") options = layersControlOptions(collapsed = FALSE) )
例子: 基本小册子地图,有两个选项的瓦片和两个带复选框的标记。
输出
在地图上绘制数据
你的R环境中的空间对象也可以被添加为地图层,只要它们有一个定义了基准的CRS。我们可以根据数据集的类型,使用addMarkers()或addPloygons()函数在小册子地图上面使用这些数据点。如果数据集是单维的,我们使用标记,对于多维数据,我们使用多边形。
例子: 将数据变量作为标记绘制在小叶地图上面。该例子中使用的数据集可以在这里下载。
输出