例如,假设我有美国每家麦当劳餐厅的 latlong 对,没有别的。我可以使用 maps/ggplot2 包,即在每个州的中心放置一个圆,其半径与麦当劳的数量成正比吗?
谢谢!
应该查看地图参考指南。函数 map.where 很好地解决了这个问题。
查看空间任务视图,链接在 CRAN 主站点的文档中。此功能位于 sp 包和 rgeos 包中。
另一种更快的方法是使用 package.json 的功能over
。sp
事实上,数据库map.where
已经相当过时了(看看欧洲!)。您需要一个SpatialPolygonsDataFrame
带有美国边界的数据框和一个带有 latlong 对的数据框,然后您需要将数据框转换为SpatialPoints
最终可以使用该over
函数。下面的代码可以用在 package.json 提供的世界地图上maptools
。
require(sp)
require(maptools)
data(wrld_simpl)
pts = SpatialPoints(my_lat_long_pairs_data_frame, CRS(proj4string(wrld_simpl)))
my_countries = over(pts, wrld_simpl)$NAME