4

我制作了一张传单地图,将一些国家/地区覆盖在 R 传单网络地图上,但是投影/布局似乎有问题,俄罗斯的部分地区发现它位于相邻的框架上。 在此处输入图像描述

编码:

library(rworldmap)
library(countrycode)



## country is in text 
cnt <- c("Russia","Afghanistan", "Albania"," Algeria"," Argentina","   Armenia", "Azerbaijan"," Bangladesh"," Belarus")


#convert to ISO3 code
iso3 = countrycode(cnt, "country.name", "iso3c")

df= as.data.frame(cnt)
malMap <- joinCountryData2Map(df, joinCode = "ISO3", nameJoinColumn = "cnt")

## subset data
dfapr <- malMap[malMap$ISO3 %in% iso3, ]
plot(dfapr)

这个问题的主要后果是,如果你正在制作一个 web 地图,它看起来像这样:在此处输入图像描述

我们如何解决这个问题。是任何低分辨率的世界地图,其中我们可以根据 ISO 代码选择国家,并且在几何上更加一致。

4

1 回答 1

7

这是我评论的意思的一个例子。

library(sp)
library(maps)
library(maptools)
library(leaflet)

# make sure to use the latest maps package
# it was recently updated at the time of the answer

world <- map("world", fill=TRUE, plot=FALSE)
world_map <- map2SpatialPolygons(world, sub(":.*$", "", world$names))
world_map <- SpatialPolygonsDataFrame(world_map,
                                      data.frame(country=names(world_map), 
                                                 stringsAsFactors=FALSE), 
                                      FALSE)

cnt <- c("Russia", "Afghanistan", "Albania", "Algeria", "Argentina", "Armenia",
         "Azerbaijan", "Bangladesh", "Belarus")

target <- subset(world_map, country %in% cnt)

leaflet(target) %>% 
  addTiles() %>% 
  addPolygons(weight=1)

在此处输入图像描述

于 2015-10-09T15:56:01.000 回答