如何使用r循环在传单贴图中添加多个多边形?
根据许多国家代码列表,我正在尝试向传单世界地图添加多个多边形。我试着用R循环来添加多边形。下面是我从列表1手动添加多边形的代码:如何使用r循环在传单贴图中添加多个多边形?,r,maps,leaflet,r-leaflet,R,Maps,Leaflet,R Leaflet,根据许多国家代码列表,我正在尝试向传单世界地图添加多个多边形。我试着用R循环来添加多边形。下面是我从列表1手动添加多边形的代码: library(sp) library(raster) library(leaflet) library(maps) library(tidyverse) countries_1 <- c('PAK','TUR','BGR') adm1 <- getData('GADM', country='PAK', level=0) adm2 <- getD
library(sp)
library(raster)
library(leaflet)
library(maps)
library(tidyverse)
countries_1 <- c('PAK','TUR','BGR')
adm1 <- getData('GADM', country='PAK', level=0)
adm2 <- getData('GADM', country= 'TUR', level=0)
adm3 <- getData('GADM', country= 'BGR', level=0)
leaflet() %>%
addTiles() %>%
addPolygons(data=adm1, weight = 3, fillColor = 'purple', color = 'purple') %>%
addPolygons(data=adm2, weight = 3, fillColor = 'purple', color = 'purple') %>%
addPolygons(data=adm3, weight = 3, fillColor = 'purple', color = 'purple')
下面是一个使用软件包sf和mapview的解决方案。请注意,目前只有使用mapview的开发版本才能实现这一点(请参见注释掉的
devtools::install\u github()
#devtools::install_github(“r-spatial/mapview@develop")
图书馆(sf)
图书馆(地图视图)
图书馆(光栅)
国家/地区\u 1%addTiles()
用于(数据列表中的i){
m=mapview::addFeatures(地图=m,
数据=i,
重量=3,
fillColor='紫色',
颜色=‘紫色’)
}
M
请注意,
addFeatures
与类型无关,因此点、线和/或多边形的任何组合都可以在这里使用。这里有一个使用软件包sf和mapview的解决方案。请注意,目前只能使用mapview的开发版本(请参阅注释掉的devtools::install\u github()
#devtools::install_github(“r-spatial/mapview@develop")
图书馆(sf)
图书馆(地图视图)
图书馆(光栅)
国家/地区\u 1%addTiles()
用于(数据列表中的i){
m=mapview::addFeatures(地图=m,
数据=i,
重量=3,
fillColor='紫色',
颜色=‘紫色’)
}
M
请注意,
addFeatures
与类型无关,因此任何点、线和/或多边形的组合都可以在这里使用。您不能将数据合并并将国家映射到一个变量吗?@RomanLuštrik请阅读注释。如果您将它们合并到一个变量中,它将只绘制列表中的第一个元素。看起来您正在添加一个基本地图当你通过循环时,你能在一个循环中创建countries
粘贴的多边形串,然后用管道将其输送到传单%>%addTiles%%>%
的末尾吗?你可以在循环中的每个迭代结束时用管道命令进行粘贴……你不能将数据合并并将country映射到一个变量吗?@RomanLuštrik请阅读注释。如果您将它们合并到一个变量中,它将只绘制列表中的第一个元素。看起来您每次通过循环时都在添加一个底图,您是否可以改为在一个循环中创建国家
粘贴的多边形字符串,然后将其输送到传单%>%addTiles%%
.Y的末尾你可以在每次迭代结束时将pipe命令粘贴到循环中…非常有用,谢谢!尽管我使用了旧方法应用了我的循环..非常有用,谢谢!尽管我使用了旧方法应用了我的循环。。
countries_n <- ('ctry1','ctry2','ctry3',...'ctryn')
for (i in country_n) {
countries <- basemap %>% addPolygons(data=getData('GADM',country = i, level = 0),
weight = 3, fillColor = 'purple', color = 'purple')
}
addPolygons(data=c('PAK','TUR'), weight = 3, fillColor = 'purple', color = 'purple')
# devtools::install_github("r-spatial/mapview@develop")
library(sf)
library(mapview)
library(raster)
countries_1 <- c('PAK','TUR','BGR')
dat_list = lapply(countries_1, function(i) {
st_as_sf(getData("GADM", country = i, level = 0))
})
m = leaflet() %>% addTiles()
for (i in dat_list) {
m = mapview::addFeatures(map = m,
data = i,
weight = 3,
fillColor = 'purple',
color = 'purple')
}
m