美文网首页
R数据可视化-动态、交互式地图神器(二)地图与定位

R数据可视化-动态、交互式地图神器(二)地图与定位

作者: 卷福不卷 | 来源:发表于2017-03-02 00:12 被阅读0次

    Leaflet/LeafletCN 系列

    本节结构:

    1. 什么是Leaflet
    2. 基本语法
    3. 加载地图
    4. 视图定位
    5. 支持数据
    【什么是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包支持各种与空间信息有关的对象,包括:

    1. R基础对象
    • 由经纬度组成的矩阵
    • 带有经纬度字段的数据框
    1. 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()
    

    待续未完~

    相关文章

      网友评论

          本文标题:R数据可视化-动态、交互式地图神器(二)地图与定位

          本文链接:https://www.haomeiwen.com/subject/gbecgttx.html