动态地理信息可视化——leaflet构造路径图

根据先前几篇内容的框架,今天介绍leaflet在线地图的第三篇,以线条元素构造的路径图。

加载包:

1
2
library(leaflet)
library(dplyr)

导入数据集:

1
2
3
4
data<-read.table("D:/R/File/subwayline.txt",header=TRUE,stringsAsFactors = FALSE)
data$Type<-as.factor(data$Type)
data1<-filter(data,Type=="NO1")
data2<-filter(data,Type=="NO5")

以上我用百度地图的坐标拾取平台采点拾取的背景地铁一号线和五号线的车站地理位置信息,(因为没有现成的数据,只能手工采点,可能不是很准确)

基本语法解释:

今天要介绍的leaflet类型是线条,也即addPolylines函数,其基本语法如下:

1
2
3
4
5
6
7
8
addPolylines(map, lng = NULL,lat = NULL, #指定数据源并做经纬度声明
layerId = NULL,
group = NULL, #图层分组(制作动态可见性交互时使用)
stroke = TRUE, #是否呈现路径线
color = "#03F",weight = 5,opacity = 0.5, #关于线条的颜色、宽度、透明度
fill = FALSE, fillColor = color, fillOpacity = 0.2,
dashArray = NULL, smoothFactor = 1, noClip = FALSE, #线型参数,平滑度等
popup = NULL, options = pathOptions(), data = getMapData(map)) #弹窗、选项控制

构造色盘:

1
pal <- colorFactor(topo.colors(2),data$Type)

可视化过程:

作图函数:使用默认点标识

1
2
3
4
5
leaflet()%>%
addTiles()%>%
addPolylines(data=data1,~lon,~lat,color="blue")%>%
addPolylines(data=data2,~lon,~lat,color="green")%>%
addMarkers(data=data,~lon, ~lat,popup = ~address)

使用可自定义的圆点标识车站位置

1
2
3
4
5
leaflet()%>%
addTiles()%>%
addPolylines(data=data1,~lon,~lat,color="blue")%>%
addPolylines(data=data2,~lon,~lat,color="green")%>%
addCircles(data=data,~lon, ~lat,popup = ~address,color="red")

1
2
3
4
5
leaflet()%>%
addTiles()%>%
addPolylines(data=data1,~lon,~lat,color="blue")%>%
addPolylines(data=data2,~lon,~lat,color="green")%>%
addCircleMarkers(data=data,~lon, ~lat,popup = ~address,color=~Type)

以下是几种比较常用的地图背景素材

1
2
3
4
addProviderTiles("Esri.WorldStreetMap")
addProviderTiles("Esri.WorldImagery")
addProviderTiles("Esri.WorldTerrain")
addProviderTiles("Esri.NatGeoWorldMap")

几张常见的素材风格:

1
2
3
4
5
leaflet()%>%
addProviderTiles("Esri.WorldStreetMap")%>%
addPolylines(data=data1,~lon,~lat,color="blue")%>%
addPolylines(data=data2,~lon,~lat,color="green")%>%
addCircles(data=data,~lon, ~lat,popup = ~address,color=~Type)

1
2
3
4
5
leaflet()%>%
addProviderTiles("Esri.WorldImagery")%>%
addPolylines(data=data1,~lon,~lat,color="blue")%>%
addPolylines(data=data2,~lon,~lat,color="green")%>%
addCircles(data=data,~lon, ~lat,popup = ~address,color=~Type)

1
2
3
4
5
leaflet()%>%
addProviderTiles("Esri.WorldGrayCanvas") %>%
addPolylines(data=data1,~lon,~lat,color="blue")%>%
addPolylines(data=data2,~lon,~lat,color="green")%>%
addCircles(data=data,~lon, ~lat,popup = ~address,color=~Type)

1
2
3
4
5
leaflet()%>%
addProviderTiles("Esri.NatGeoWorldMap") %>%
addPolylines(data=data1,~lon,~lat,color="blue")%>%
addPolylines(data=data2,~lon,~lat,color="green")%>%
addCircles(data=data,~lon, ~lat,popup = ~address,color=~Type)

是不是觉得花样不够多呀,那好吧,以下这些,全部都送给你,那好不谢!


  • OpenStreetMap.Mapnik
  • OpenStreetMap.BlackAndWhite
  • OpenStreetMap.DE
  • OpenStreetMap.France
  • OpenStreetMap.HOT
  • OpenTopoMap
  • Thunderforest.OpenCycleMap
  • Thunderforest.Transport
  • Thunderforest.TransportDark
  • Thunderforest.SpinalMap
  • Thunderforest.Landscape
  • Thunderforest.Outdoors
  • Thunderforest.Pioneer
  • OpenMapSurfer.Roads
  • OpenMapSurfer.Grayscale
  • Hydda.Full
  • Stamen.Toner
  • Stamen.TonerBackground
  • Stamen.TonerLite
  • Stamen.Watercolor
  • Stamen.Terrain
  • Stamen.TerrainBackground
  • Stamen.TopOSMRelief
  • Esri.WorldStreetMap
  • Esri.DeLorme
  • Esri.WorldTopoMap
  • Esri.WorldImagery
  • Esri.WorldTerrain
  • Esri.WorldShadedRelief
  • Esri.WorldPhysical
  • Esri.OceanBasemap
  • Esri.NatGeoWorldMap
  • Esri.WorldGrayCanvas
  • MtbMap
  • CartoDB.Positron
  • CartoDB.PositronNoLabels
  • CartoDB.PositronOnlyLabels
  • CartoDB.DarkMatter
  • CartoDB.DarkMatterNoLabels
  • CartoDB.DarkMatterOnlyLabels
  • HikeBike.HikeBike
  • HikeBike.HillShading
  • NASAGIBS.ModisTerraTrueColorCR
  • NASAGIBS.ModisTerraBands367CR
  • NASAGIBS.ViirsEarthAtNight2012
  • NASAGIBS.ModisTerraLSTDay
  • NASAGIBS.ModisTerraSnowCover
  • NASAGIBS.ModisTerraAOD
  • NASAGIBS.ModisTerraChlorophyll

细数也有好几十个,够你玩一阵子了,使用方法仅仅是通过设置图层函数进行调用,然后就可以愉快的在图层上面进行可视化操作了。
addProviderTiles(“地图类型”)


联系方式:
wechat:ljty1991
Mail:578708965@qq.com
个人公众号:数据小魔方(datamofang)

qq交流群:[魔方学院]298236508

个人简介:
杜雨
财经专业研究僧;
伪数据可视化达人;
文科背景的编程小白;
喜欢研究商务图表与地理信息数据可视化,爱倒腾PowerBI、SAP DashBoard、Tableau、R ggplot2、Think-cell chart等诸如此类的数据可视化软件,创建并运营微信公众号“数据小魔方”。
Mail:578708965@qq.com


备注信息:
知识共享许可协议
本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。

坚持原创技术分享,您的支持将鼓励我继续创作!