我正在尝试创建选定的加拿大省/地区和选定的美国州的地图。到目前为止,最好的地图似乎是使用 GADM 数据生成的地图:http ://www.gadm.org/
但是,我无法在同一张地图上绘制美国和加拿大,或者只绘制选定的省/地区和州。例如,我对阿拉斯加、育空地区、西北地区、不列颠哥伦比亚省、阿尔伯塔省和蒙大拿州等感兴趣。
此外,美国地图似乎沿国际日期变更线分开。
有人可以帮我:
- 在一张地图上绘制上述省/地区和州
- 避免美国在国际日期变更线上分裂
- 覆盖经纬度网格
- 选择一个特定的投影,也许是多边形。
也许 spplot 不允许用户指定投影。我没有在 spplot 帮助页面上看到选择投影的选项。我知道如何使用地图包中的地图功能选择投影,但这些地图看起来并不好,我也无法使用该功能绘制所需的省/地区和州子集。
我不知道如何开始添加经纬度网格。但是,文件“sp.pdf”的第 3.2 节似乎解决了该主题。
以下是我到目前为止提出的代码。我已经加载了我偶然发现的每个与地图相关的包,并注释掉了 GADM 数据,省/地区或州边界除外。
不幸的是,到目前为止,我只设法绘制了加拿大或美国的地图
library(maps)
library(mapproj)
library(mapdata)
library(rgeos)
library(maptools)
library(sp)
library(raster)
library(rgdal)
# can0<-getData('GADM', country="CAN", level=0) # Canada
can1<-getData('GADM', country="CAN", level=1) # provinces
# can2<-getData('GADM', country="CAN", level=2) # counties
plot(can1)
spplot(can1, "NAME_1") # colors the provinces and provides
# a color-coded legend for them
can1$NAME_1 # returns names of provinces/territories
# us0 <- getData('GADM', country="USA", level=0)
us1 <- getData('GADM', country="USA", level=1)
# us2 <- getData('GADM', country="USA", level=2)
plot(us1) # state boundaries split at
# the dateline
us1$NAME_1 # returns names of the states + DC
spplot(us1, "ID_1")
spplot(us1, "NAME_1") # color codes states and
# provides their names
#
# Here attempting unsuccessfully to combine U.S. and Canada on one map.
# Attempts at selecting given states or provinces have been unsuccessful.
#
plot(us1,can1)
us.can1 <- rbind(us1,can1)
谢谢你的帮助。到目前为止,我在上面的步骤 2 - 4 上没有取得任何进展。也许我要求太多了。也许我应该简单地切换到 ArcGIS 并尝试使用该软件。
我已阅读此 StackOverflow 帖子:
编辑
我现在借用了“与 R 的应用空间数据分析” Bevand 等人的电子副本。(2008)并从本书的网站下载(或找到)相关的 R 代码和数据:
我还在这里找到了一些漂亮的与 GIS 相关的 R 代码:
https://sites.google.com/site/rodriguezsanchezf/news/usingrasagis
如果以及当我学习如何实现预期目标时,我将在此处发布解决方案。尽管如果我无法实现 R 中的目标,我最终可能会迁移到 ArcGIS。