更新了 R“地图”包的世界地图?

Posted

技术标签:

【中文标题】更新了 R“地图”包的世界地图?【英文标题】:Updated world map for R "maps" package? 【发布时间】:2013-04-02 06:44:58 【问题描述】:
library(maps)
1> map.where(database="world",29.392089,53.592505)
[1] "Us-s-r"

有谁知道我如何获得更新的世界地图数据库来驱动地图包中的这个功能?我现在只需要国家名称,而不需要详细的地方行政信息,例如在 gadm.org 上提供的信息。

【问题讨论】:

可能有一种方法可以使用 rworldmap 包执行等效任务,但我现在无法弄清楚... 你的意思是geocommons.com/overlays/33578? 地图和地图数据在拓扑上确实过时且不干净,很容易从中得到损坏的形状 - 除了最粗糙的背景地图外,我会避免使用它。有时虽然您必须找到自己的来源,但 rgdal 是阅读的最佳选择。 【参考方案1】:

maptools 包中尝试wrld_simpl

require(maptools)
data(wrld_simpl)
plot(wrld_simpl)

## or subset based on the name
plot(wrld_simpl[wrld_simpl$NAME == "Russia", ])
## explore other attributes
summary(wrld_simpl)

我不知道它是最新的,但?wrld_simpl 描述了源代码,因此您可能会在链接后找到好东西。其他依赖 sp 的包也值得探索数据。

否则,会有 Rgshhs 包,但我不确定它是否仍然可用。它提供了相当详细的信息,但如果需要,您可以下载更多内容。有点复杂,原始数据在这里:http://www.ngdc.noaa.gov/mgg/shorelines/gshhs.html

如果您有自己的数据,也可以使用 rgdal 从矢量格式(如 MIF 或 SHP 或 PostGIS)中读取数据,或者在 maptools 中使用类似的读取函数(仅适用于 shapefile)。

使用点查询对象的示例:

require(sp)
require(maptools)
data(wrld_simpl)
pts <- SpatialPoints(cbind(c(29.392089,147), c(53.592505, -35)), CRS(proj4string(wrld_simpl)))

over(pts, wrld_simpl)$NAME

有关sp 中这些和其他功能的介绍,请参见vignette("sp")。

还可以尝试使用geonames 包进行更一般的地理名称查询。

【讨论】:

谢谢,但是如何使用map.where(database="wrld_simpl",29.392089,53.592505) 之类的方式查询这些数据集。它不工作。我不需要制作任何可视化地图,我只需要能够给出坐标并获得国家名称。 好的,添加了一个示例 - 我错过了您问题中的那部分,只考虑了实际地图。 maps::map.where 帮不了你。

以上是关于更新了 R“地图”包的世界地图?的主要内容,如果未能解决你的问题,请参考以下文章

在 R 中绘制 1990 年前的世界地图

百度地图离线导航包的全国基础包怎么用

R语言可视化世界地图:包含边界边框和不包含边界边框两种方案

如何在 R 中使用带有 sf/rnaturalearth/ggplot 的 Mollweide 投影旋转世界地图?

如何创建带有热图的世界地图

类似西方世界的劫难的魔兽rpg地图 跪求啊