R_leaflet包_最易上手地图教程(一)(下)

本文介绍了R语言中leaflet包的使用,包括快速绘制地图、添加shapes和线条、circles、rectangles、多边形等功能。展示了使用sp、maps包的数据源创建地图,并讨论了如何简化复杂地图数据。此外,还探讨了处理GeoJSON和TopoJSON数据的方法,以及修改地图样式。
摘要由CSDN通过智能技术生成
3901436-b37967e4a347b014

欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答、求职一站式搞定!

对商业智能BI、大数据分析挖掘、机器学习,python,R等数据领域感兴趣的同学加微信:tstoutiao,邀请你进入数据爱好者交流群,数据爱好者们都在这儿。

作者:李誉辉

四川大学在读研究生

最近一直在寻找方便上手的地图包,实验了google地图包,百度地图包,发现还是有很多限制。

百度地图包搭配的REmap总是崩溃,

google地图包ggmap现在需要国际信用卡注册,总之,都不甚满意。

虽然ggplot2地图功能非常丰富,但是还是不够简单快捷。

尤其是当我们仅仅需要绘制一些简单的地图时。

经过圈子大佬的推荐,开始尝试leaflet包,确实给我很多惊喜。

leaflet包相对其它地图包,有很多优点和缺点,

首先,绘制地图简单快捷,因为都是基于供应商的tiles,一行代码就可以render出基本widget地图。

支持管道传参,一个图层一个图层进行添加,代码结构更加清晰。

其次,有很多tiles供应商可以选择,包括高德、google、Stamen, Esri, OpenWeatherMap,NASA,

等好几十个tiles供应商。当然其中一些需要注册。其中的google可以绕过注册,已经很难得了。

对于在地图上添加markers图标,shapes形状,线条等,异常方便快捷,这在ggplot2中很难做到的。

支持栅格数据,rasters栅格数据是基于像素点的地图。可以看出,leaflet具有很强的包容性。

支持多种投影坐标系,甚至可以自定义坐标系,这在某些特殊场景非常重要。

当然还有更重要的是,其具有一定交互能力,可以缩放拖拽,

简单的图层切换也不需要使用Shiny。使得更容易上手。

其它特点,首先tiles是基于供应商的,必须联网,

其次对颜色支持不一样,只支持HEX颜色空间和colors()中的颜色名称。 当然内置的几个palette函数,非常特别。

总之,笔者认为leaflet包与ggplot2包的互补性非常好,刚好弥补了ggplot2中画地图的不足。

对于大量数据需要呈现在地图上的场景,还是`ggplot2, leaflet中插入其它plots不便也没有必要。

下面是笔者总结的中文教程,使得新人能更快上手。

说明:以下图片皆为截图,限于技术问题,不能完全展现它的交互式功能。

5.形状与线条

在leaflet中,添加形状和线条非常容易。

多边形和折线

线条和多边形数据源可以从以下途径获取:

SpatialPolygons(), SpatialPolygonsDataFrame(),

Polygons()和Polygon()对象(来自sp包)

SpatialLines(), SpatialLinesDataFrame(), Lines(), 和Line()对象(来自sp包)

MULTIPOLYGON(), POLYGON(), MULTILINESTRING()和LINESTRING()对象(来自sp包)

map()对象(来自maps包)。

使用map(fill = TRUE)得到多边形数据,使用map(fill = FALSE)得到折线段数据

2列的矩阵,第1列为经度,第2列为纬度。多边形之间用(NA, NA)行分开。

但是对于多边形内部存在空洞,这种方法失效,须使用SpatialPolygons()。

5.1

circles形状

使用addCircles()添加circle形状。

绘制circle形状时,仅仅需要圆心坐标和半径。使用radius参数指定半径。

1library(leaflet)

2

3cities <- read.csv(textConnection("

4City,Lat,Long,Pop

5Boston,42.3601,-71.0589,645966

6Hartford,41.7627,-72.6743,125017

7New York City,40.7127,-74.0059,8406000

8Philadelphia,39.9500,-75.1667,1553000

9Pittsburgh,40.4397,-79.9764,305841

10Providence,41.8236,-71.4222,177994

11"))

12

13leaflet(cities) %&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值