library(maps)
1> map.where(database="world",29.392089,53.592505)
[1] "USSR"
有谁知道我如何获得更新的世界地图数据库来在地图包中驱动这个功能?我现在只需要国名,而不是详细的地方行政信息,例如gadm.org提供的信息。
答案 0 :(得分:8)
在wrld_simpl
包中尝试maptools
。
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
中的类似读取函数,您还可以使用maptools
从矢量格式(如MIF或SHP或PostGIS)读取数据。
使用点查询对象的示例:
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
包进行更一般的地理名称查询。