8
library(maps)
1> map.where(database="world",29.392089,53.592505)
[1] "USSR"

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

4

1 回答 1

8

wrld_simplmaptools包装中尝试。

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包进行更一般的地理名称查询。

于 2013-04-02T10:48:59.147 回答