用R语言绘制动态地图,代码奉上!(REmap包详解)

article/2025/8/27 8:18:09

options(remap.ak="MY07CLhm3wKi4N2tQ6WP4kzz21BBZagI")

安装包

 

library(devtools)

install_github('badbye/baidumap')

install_github('lchiffon/REmap')

 

baidumap包函数说明

 

getBaiduMap函数

getBaiduMap(location, width = 400, height = 400, zoom = 10, scale = 2,

color = "color", messaging = TRUE)

参数:

location:包含经度和维度的向量或者是一个矩阵,或者可以是一个字符串表示地址;经纬度和地址将作为地图的中心点

width,height:map的宽和高

zoom:map的缩放比例,是一个整数,从3(洲)到21(building),默认值是10

scale:像素数

color:"color" or "bw",表示有色或者是黑白

messaging:逻辑语句,决定是否输出下载数据的信息

 

案例:

library(baidumap)

library(ggmap)

#获取北京大学的地图信息

q <- getBaiduMap('北京大学', width=600, height=600, zoom=18, scale = 2, messaging=FALSE)

ggmap(q) #绘制地图

getCoordinate函数

根据地址得到经纬度

# 参考文档

getCoordinate(address, city = NULL, output = "json", formatted = F)

参数:

address:地址

city:可选项,地质所在的城市

output:json或者xml格式

formatted:F返回原有的json或者xml格式,而T返回的是经纬度的矩阵

 

案例

getCoordinate('北京大学',output='xml') #xml格式

getCoordinate('北京大学',output='json') #json格式

getCoordinate('北京大学',output='xml',formatted = T) #矩阵形式

#可以同时多个地点

getCoordinate(c('北京大学', '清华大学', '人民大学'), formatted = T)

 

getLocation

通过经纬度得到地址

# 参考文档

getLocation(location, output = "json", formatted = F, pois = 0)

参数:

location:经纬度

output:json或者xml格式

formatted:是否返回一个较好的结果

pois:是否返回这个位置周围的PIO

 

案例

getLocation(c(118.12845, 24.57232),formatted = T)

#同样可以返回多个位置

getLocation(c(118.12845, 24.57232,116.31234,40.56125),formatted = T)

 

#fromJSON函数的用法

library(rjson)

js <- getLocation(c(116.31617,39.99775),output='json') #json格式

fromJSON(js) #返回一个列表,包含了该地址下的

 

## 对于含多个经纬度的矩阵

loc = matrix(c(117.93780, 24.55730, 117.93291, 24.57745, 117.23530, 24.64210, 117.05890, 24.74860), byrow=T, ncol=2)

 

### 得到json格式

location_json = getLocation(loc, output='json')

 

 

### 设计一个函数返回district,即所属的区

 

getDistrict = function(x_json){

x_list = fromJSON(x_json) #json转化为list

x_list$result$addressComponent$district #返回所属的区

}

 

location_district = sapply(location_json, getDistrict) #运用上面的函数到这个json对象上

location_district

 

getPlace函数

 

返回地图搜索结果

getPlace(place = NULL, city = "北京")

 

参数:

place:你想要搜索的地方

city:城市

 

返回值:数据框dataframe:包含名字、经纬度、地址等

 

案例

#查找北京的大学

bj_college = getPlace('大学','北京')

## Mcdonald's in shanghai

sh_mcdonald = getPlace('麦当劳', '上海')

 

getRoute函数

通过搜索得到路线

getRoute(...)

参数:

origin:起点

destination:终点

mode:出行方式,'walk','transit'

region:起点和终点所在区域,若不在同一地区,分别用origin_region和destination_region

tactics:10(不走高速), 11(默认, 最短时间), 12(最短路径).

coord_type:'bd09ll'(default), 'gcj02'(which Google map and Soso map are using), 'wgs84' for GPS devices.

返回值:dataframe:包含经纬度

 

案例

bjMap = getBaiduMap('北京',color = 'bw')

df = getRoute('首都国际机场', '北京南苑机场')

ggmap(bjMap) + geom_path(data = df, aes(lon, lat), alpha = 0.5, col = 'red')

 

REmap函数

 

绘制地图使用的是主函数remap

remap(mapdata, title = "", subtitle = "",

theme =get_theme("Dark"))

mapdata一个数据框对象,第一列为出发地点,第二列为到达地点

title标题

subtitle副标题

theme控制生成地图的颜色,具体将会在get_theme部分说明

 

 

制作迁徙地图

 

origin = rep("北京",10)

destination = c('上海','广州','大连','南宁','南昌',

'拉萨','长春','包头','重庆','常州')

dat = data.frame(origin,destination)

out = remap(dat,title = "REmap实例数据",subtitle = "theme:Dark")

plot(out)

out = remap(dat,title = "REmap实例数据",subtitle = "theme:Bright",

theme = get_theme("None",

lineColor = "orange"))

plot(out)

## Set Region Color

out = remap(dat,title = "REmap实例数据",subtitle = "theme:Bright",

theme = get_theme("None",

lineColor = "orange",

backgroundColor = "#FFC1C1",

titleColor = "#1b1b1b",

regionColor


http://chatgpt.dhexx.cn/article/ywt3qSAA.shtml

相关文章

remap()

学习自&#xff1a;【OpenCV入门教程之十七】OpenCV重映射 重映射&#xff0c;就是把一幅图像中某位置的像素放置到另一个图片指定位置的过程。为了完成映射过程, 我们需要获得一些插值为非整数像素的坐标,因为源图像与目标图像的像素坐标不是一一对应的。一般情况下&#xff…

REmap绘制地图

本文出自&#xff1a; http://blog.csdn.net/wzgl__wh/article/details/53108754 REmap这个包是通过调用百度地图API的一个程序包&#xff0c;与Google的ggmap包相比&#xff0c;不用翻墙就可以使用。其函数主要有&#xff1a;remap()&#xff0c;remapB()、remapC()、remapH()…

R语言:使用REmap绘制超炫酷的地图

REmap这个包是通过调用百度地图API的一个程序包,与Google的ggmap包相比,不用翻墙就可以使用。其函数主要有:remap(),remapB()、remapC()、remapH()四个。该程序包目前要github网站上,因此我们需要从github上面下载安装。 install.packages("devtools")#如果安装…

ioremap()

活动地址&#xff1a;CSDN21天学习挑战赛 前言 之前&#xff0c;我们使用 devmem 命令的方式&#xff0c;直接操作寄存器&#xff0c;控制 LED 的亮灭。 今天&#xff0c;我们在内核中使用 ioremap() 来实现该功能。 物理地址 vs 虚拟地址 在嵌入式 Linux 中&#xff0c;通常…

STM32和GD32的GPIO引脚的default(默认) alternate(引脚复用) remap(引脚重映射)三种用法 别把复用和重映射当一回事儿

STM32有很多内置外设&#xff0c;这些外设的外部引脚都是与GPIO复用的。也就是说&#xff0c;一个GPIO如果可以复用为内置外设的功能引脚&#xff0c;那么当这个GPIO作为内置外设使用的时候&#xff0c;就叫做复用 重映射就是引脚重映射&#xff0c;本来每个内置外设都有原来设…

OpenCV函数remap详解

OpenCV函数remap详解 remap的作用是将原影像映射到目标影像的函数。 这是OpenCV文档中的说明。 但这个描述给人的感觉是&#xff0c;云里雾里&#xff0c;到底是需要计算目标到原的映射关系&#xff0c;还是原到目标的映射呢。 经过我的实验发现是需要给出目标到原的映射关系…

remap函数

cvRemap( img1, img1r, mx1, my1 );在这个函数中mx1、my1是由前面函数计算出的校正系数&#xff0c;其指明了具体像素重新分配的位置。在learning opencv的12.3自带程序中可以发现&#xff0c;一般来说my1的值是比较集中的&#xff0c;mx1的值是比较分散的&#xff0c;这满足基…

Python-OpenCV 的 remap函数

恒等映射 result_img 和 原图一模一样 import cv2 import numpy as npimg cv2.imread("OpenCV.png") rows, cols, ch img.shape mapx np.ones(img.shape[:2], np.float32) mapy np.ones(img.shape[:2], np.float32) for i in range(rows):for j in range(cols)…

STM32重映射(Remap)

STM32重映射&#xff08;Remap&#xff09; 在外设的初始化中默认为Default重映射函数复用功能 在外设的初始化中默认为Default 在参考手册中 均有USART1的功能&#xff0c;但是若是想要用PB6与PB7作为USART1_TX与USART1_RX则需要用到重映射。 使用PA9 PA10只需要直接配置就…

Opencv remap函数

Opencv remap函数 函数签名实例应用亚像素信息扭曲特效 函数签名 void cv::remap ( InputArray src, OutputArray dst, InputArray map1, InputArray map2, int interpolation, int borderMode BORDER_CONSTANT, const Scalar & borderValue Scalar() ) 将通用几何变换…

OpenCV图像处理——重映射 remap函数

在《学习OpenCV3&#xff0c;OReilly系列丛书》中的第11章常见的图像变换中讲到的“任意映射”&#xff0c;Remap函数。函数cv::remap通常用来纠正校准的立体图像&#xff0c;包括图像变形和图像扭曲。其实这个函数在无人机拍摄延时摄影&#xff08;使用电子防抖算法&#xff0…

重映射:remap()函数

remap()函数会根据指定的映射形式&#xff0c;将原图像进行重映射几何变换&#xff0c;基于公式如下&#xff1a; dst(x, y) src( mapx(x, y), mapy(x, y) )函数原型C&#xff08;程序 / 20&#xff09;: void remap( InputArray src, OutputArray dst, InputArray map1, In…

OpenCV:remap()简单重映射

学习自&#xff1a;【OpenCV入门教程之十七】OpenCV重映射 重映射&#xff0c;就是把一幅图像中某位置的像素放置到另一个图片指定位置的过程。为了完成映射过程, 我们需要获得一些插值为非整数像素的坐标,因为源图像与目标图像的像素坐标不是一一对应的。一般情况下&#xff…

JS获取对象键值对中key值的方法

使用Object.keys Object.keys( ) 会返回一个数组&#xff0c;数组中是这个对象的key值列表 所以只要Object.keys(a)[0]&#xff0c; 就可以得只包含一个键值对的key值 下面是MDN中对Object.keys的描述 Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组&…

C# 键值对

1.初始化一个键值对 1 //初始化定义一个键值对&#xff0c;注意最后的括号 2 Dictionary<int, string> dic new Dictionary<int, string>(); 2.为键值对添加元素 1 //键值对的Add函数 2 dic.Add(2, "zhao"); 3 dic.Add(4, "qian"); 4 dic…

js中往数组对象中添加键值对的方法有哪些?

❤️❤️❤️Topology-le5le智慧光伏能源可视化方案❤️❤️❤️ &#x1f31f;&#x1f31f;&#x1f31f;Topology可视化绘图引擎&#x1f31f;&#x1f31f;&#x1f31f; 1.Object.assign() 用法&#xff1a;Object.assign(源对象, {要添加的键值对}) 2.拓展运算符&…

键值对操作

键值对 RDD 通常用来进行聚合计算。我们一般要先通过一些初始 ETL(抽取、转化、装载)操作来将数据转化为键值对形式。键值对 RDD 提供了一些新的操作接口(比如统计每个产品的评论,将数据中键相同的分为一组,将两个不同的 RDD 进行分组合并等)。 1. 动机 Spark 为包含键值对类…

java键值对的使用

Map集合没有继承Collection接口&#xff0c;但是其提供了key到value的映射。每一个key不能有相同&#xff0c;每个key只能映射一个value值。 Map接口常用方法&#xff1a; 方法功能描述put(K key, V value)向集合中添加指定的key与value的映射关系containsKey(Object key)如果…

C++ map容器(键值对)

文章目录 1&#xff0c;map简介2&#xff0c;map的功能3&#xff0c;使用map4&#xff0c;map的构造函数5&#xff0c;插入元素6&#xff0c; 查找元素7&#xff0c; 刪除与清空元素8&#xff0c;map的大小9&#xff0c;map的基本操作函数&#xff1a; 使用示例示例1 20221027 …

java 键值对详解及java键值对代码

在 Java中&#xff0c;对象可以理解为一个列表。这个列表里面的每个元素都是一个“键”&#xff0c;而每个“键”都是一个值。 键值对的概念&#xff0c;并不是在 Java中第一次出现&#xff0c;在 java 1.x中就已经有了。那时候它的意思是在一个命名空间中建立两个名字相同的对…