更新了 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“地图”包的世界地图?的主要内容,如果未能解决你的问题,请参考以下文章