本号计划出几篇推文介绍leaflet这个工具包,它的功能是创建交互式网络地图(Create Interactive Web Maps),并添加各类要素。参考资料见网址:https://rstudio.github.io/leaflet/。

1.1 leaflet()addTiles()函数

这两个函数是该包最基础的函数。leaflet()函数用于创建画布,也就是一个地图对象,绘图时必须以该函数开头,类似于ggplot()函数;addTiles()函数用于在前者的基础上添加瓦片地图,即各种在线地图,默认状态下为OpenStreetMap。

单独使用leaflet()函数:

library(leaflet)
leaflet()

addTiles()函数的第一个参数为地图对象map,因此在函数连用时可以使用管道操作符%>%,且无需额外加载tidyverse系列工具包。

添加瓦片地图:

leaflet() %>%addTiles()

1.2 setView()函数

从上图可以看出,默认状态下加载的地图为2.5个世界全图。若想加载局部地图,需要使用setView()函数设置观察视角。语法结构如下:

setView(map, lng, lat,zoom, options = list())
  • map:地图对象;

  • lng、lat:视角中心的经度和纬度;

  • zoom:放大倍数;功能类似于比例尺,数值越大,视角范围越具体。

leaflet() %>%addTiles() %>%setView(lng = -75, lat = 39.9, zoom = 5)

leaflet() %>%addTiles() %>%setView(lng = -75, lat = 39.9, zoom = 10)

除了setView()函数外,还有以下函数可以设置观察范围:

  • fitBounds(map, lng1, lat1, lng2, lat2, options = list()):通过固定经纬度范围来确定观察视角,经度在lng1~lng2之间,纬度在lat1~lat2之间。

leaflet() %>%addTiles() %>%fitBounds(-74,39,-75,40)

  • flyTo(map, lng, lat, zoom, options = list()):视角范围与setView()函数一致,但在呈现时有一个动画效果。

leaflet() %>%addTiles() %>%flyTo(lng = -75, lat = 39.9, zoom = 10)

  • flyToBounds(map, lng1, lat1, lng2, lat2, options = list()):视角范围与fitBounds()函数一致,但在呈现时有一个动画效果。

1.3 addProviderTiles()函数

除了默认的OpenStreetMap地图外,还可以使用addProviderTiles()函数调用其他在线地图,这些地图名称可以通过输入语句names(providers)进行查看。以下仅展示其中一部分:

names(providers)[50:55]
## [1] "TomTom.Basic"        "TomTom.Hybrid"       "TomTom.Labels"
## [4] "Esri"                "Esri.WorldStreetMap" "Esri.DeLorme"

例如,调用名称为"Esri"的在线地图:

leaflet() %>%setView(lng = -75, lat = 39.9, zoom = 10) %>%addProviderTiles(providers$Esri)

这些地图平台可以在网址http://leaflet-extras.github.io/leaflet-providers/preview/index.html上进行预览。

addTiles()函数的语法结构如下:

addTiles(map,urlTemplate = "//{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",attribution = NULL,layerId = NULL,group = NULL,options = tileOptions(),data = getMapData(map)
)

其中,参数urlTemplate为在线地图的地址模板,默认状态下为OpenStreetMap,通过修改该参数也可以改变瓦片地图的类型。比如,从上述网址中获取OpenTopoMap的地址模板,再赋值给urlTemplate参数。

leaflet() %>%setView(lng = -75, lat = 39.9, zoom = 10) %>%addTiles(urlTemplate = "https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png")

如果要叠加多个地图平台的图层,可通过opacity参数设置透明度来实现:

leaflet() %>%setView(lng = -75, lat = 39.9, zoom = 10) %>%addTiles(options = tileOptions(opacity = 0.5)) %>%addProviderTiles(providers$Esri,options = providerTileOptions(opacity = 0.35))

1.4 加载高德地图

国外地图平台对国界线的划分与我国存在很多不一致的地方,尤其在涉及我国范围时不能使用这些地图平台。如果要加载高德地图,可以使用leafletCN工具包中的amap()函数。

library(leafletCN)
leaflet() %>%setView(lng = 116.5, lat = 39.9, zoom = 10) %>%amap()

leaflet |(1)在R语言中导入高德地图相关推荐

  1. leaflet (1)在R语言中导入高德地图

    本号计划出几篇推文介绍leaflet这个工具包,它的功能是创建交互式网络地图(Create Interactive Web Maps),并添加各类要素.参考资料见网址:https://rstudio. ...

  2. 技巧 | 在R语言中使用高德地图的API进行地理/逆地理编码(地址与经纬度的相互转换)...

    高德地图和百度地图都提供了坐标拾取系统,通过坐标查询或坐标反查操作可以查询一个地址对应的经纬度或经纬度对应的地址名称.但是,手动查询的方式效率很低,也不能进行批量查询. 本篇就来介绍在R语言中调用高德 ...

  3. R语言中导入java中_R语言直接调用Java代码

    我们都知道Java语言长期处于霸主地位,在所有编程语言排行榜中,Java也是常年位居第一.在近几年也是爆炸式发展,几乎覆盖到了应用开发的所有领域.而R语言则在统计圈和数据可视化处于佼佼者,如果将Jav ...

  4. tmap | R语言中专门绘制地图的工具包

    tmap工具包的名称是Thematic Maps的缩写,是R中专门绘制地图的工具包.该包语法与ggplot2包比较类似,都是通过符合+来进行图层叠加. 加载示例数据: library(tidyvers ...

  5. 高德地图api接口文档_在 R 语言里面调用高德地图接口:地理编码与路径规划

    你知道从广州南站去珠江新城怎么走么?今天就让我们一起使用 R 语言调用高德地图的地理编码(地址转经纬度)接口和路径规划接口来回答这个问题. 准备工作 注册高德地图,创建应用添加 Key(注意申请 Ke ...

  6. R语言中导入excel乱码的解决办法

    本文操作系统环境为win10,使用Rstdio. 要说明windows下在使用Rstdio的时候,在使用xlsx包,导入excel表乱码的解决办法. 1.我们先安装xlsx包 install.pack ...

  7. R语言中的地理/投影坐标系统(下)[翻译]

    原文链接:https://mgimond.github.io/Spatial/coordinate-systems-in-r.html. 译文分上.下两篇,这里为下篇. ❝ 「译者注」:在原文的本部分 ...

  8. R语言中如何计算C-Statistics?几种计算方法详解

    R语言中如何计算C-Statistics?几种计算方法详解 目录 R语言中如何计算C-Statistics? #包导入 #数据加载编码

  9. r语言 rgl 强制过程中_一个R语言中操纵矢量空间数据的标准化工具—sf

    ​注: 本文是R语言sf包的核心开发者和维护者--来自德国明斯特大学的地理信息学教授:Edzer Pebesma 的一篇关于sf包的简介,发表于2018年7月的R语言期刊,主要讲述了sf的定位.功能. ...

最新文章

  1. 幼儿园课程体系结构图_全人教育、均衡发展课程体系介绍
  2. mysql的varchar最大值是多少_MySQL varchar计算:求列的数额和计算N的最大值
  3. Udemy - Build Apps with React Native
  4. TensorFlow:实战Google深度学习框架(六)图像数据处理
  5. 分享几个拉钩网的前端页面
  6. c#将http调用返回额json中的有关中文的unicode转换为中文
  7. 终于有人把ROS机器人操作系统讲明白了
  8. 需要在AndroidManifest中添加的条件
  9. Java中List,ArrayList、Vector,map,HashTable,HashMap区别用法
  10. 机器视觉技术在当前各行各业中的应用
  11. 虚拟机运行闪讯 实现linux联网 (多图)
  12. 网页设计配色应用实例剖析—蓝色系
  13. html flag属性,纯CSS实现文章左上角Flag标签
  14. Context-free grammar 与 BNF,ASN.1
  15. html5 canvas 椭圆,html5中怎么利用Canvas绘制椭圆
  16. 华为华为Mate30pro青春版参数配置
  17. DDoS防御的8种方针详解
  18. 梅森旋转(Mersenne twister)及其他随机数生成算法
  19. 为什么ZMap用一个小时内就能扫遍整个互联网
  20. 人工智能——问题求解

热门文章

  1. Linux学习总结(48)——Linux防火墙iptables与firewalld学习总结
  2. Linux学习总结(24)——Linux查找文件命令
  3. Java基础学习总结(68)——有关Java线程方面的面试题
  4. Mysql学习总结(16)——Mysql之数据库设计规范
  5. 简述导线平差计算的五个步骤_RTK技术导线测量和全站仪导线测量有什么区别?...
  6. php判断参数_php如何判断有没有参数
  7. [Python2] List-comprehensions 列表推导式
  8. h5上下滑动时页面出现抖动问题解决
  9. # 2017-2018-1 20155224 《信息安全系系统设计基础》第四周MyOD
  10. [Oracle]如果误删了某个数据文件,又没有被备份,能否恢复?