本号计划出几篇推文介绍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()):通过固定经纬度范围来确定观察视角,经度在lng1lng2之间,纬度在lat1lat2之间。

    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()

总结

写到这里也结束了,在文章最后放上一个小小的福利,以下为小编自己在学习过程中整理出的一个关于 java开发 的学习思路及方向。从事互联网开发,最主要的是要学好技术,而学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯,更加需要准确的学习方向达到有效的学习效果。

由于内容较多就只放上一个大概的大纲,需要更及详细的学习思维导图的 点击我的Gitee获取。
还有 高级java全套视频教程 java进阶架构师 视频+资料+代码+面试题!

全方面的java进阶实践技术资料,并且还有技术大牛一起讨论交流解决问题。

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. oracle em 性能点不进,oracle em节点启动不成功问题处理总结
  2. C++ primer学习方法
  3. 云原生时代,应用架构将如何演进?
  4. CSS页面布局解决方案大全
  5. 怎么隐藏滚动条又能滚动
  6. 在GZIDG弄服务器的这一整夜,快乐
  7. 济南“凡尔赛”大姨:一儿一女俩博士,还算可以吧!网友:俺孩要这么棒,我一天发18遍朋友圈...
  8. 《设计模式之禅》学习笔记(五)
  9. 【TensorFlow】TensorFlow从浅入深系列之十一 -- 教你深入理解卷积神经网络中的卷积层
  10. c语言的数组在栈区还是,用数组实现栈的功能的C语言代码?
  11. 解决wireshark打开错误
  12. 哪种语言更适合做自动化测试?
  13. UG NX8.0安装教程
  14. Java 敏感词过滤工具类及文本
  15. 多个Excel文件合并到一个Excel文件的多个工作表(Sheet)里
  16. 73.【JavaWeb-01】
  17. webflux 之 Stream流
  18. 内存泄漏问题该如何解决-面试学习笔记
  19. 希尔伯特-黄变换(HHT)的前世今生——一个从瞬时频率讲起的故事
  20. Dev GridControl 单元格输入数据的验证方法

热门文章

  1. 「津津乐道播客」#305 厂长来了:食品配料表背后的故事(feat. OATOAT)
  2. 漫无目的地工作,只会让我们慢慢走向平庸
  3. vue3 父子组件传值
  4. 【宫水三叶的刷题日记】467. 环绕字符串中唯一的子字符串(中等)
  5. 文科学生计算机二级怎么考,文科生计算机二级都考哪些内容?谢谢
  6. Spring Refresh() 简析
  7. Avast!杀毒软件在QQ/loginctrl.dll中发现木马win32.Delf-AHY [trj]木马病毒的问题
  8. 酷我创始人雷鸣:程序员个人成长的四个要素
  9. 数据库系统概论 ---- 第五章 -- 数据库完整性
  10. IDEA对项目进行(package)生成jar包出现程序包不存在