我想在我的绘图中添加一个 basemap ,它可视化了三个 SpatialPointDataFrame。
我已经尝试过 maptools 和 RgoogleMaps 包,但两者都不起作用,这是我想要的。
我的问题:在 GoogleMaps 背景 map 上未绘制 SpatialPointDataFrames。
一个最小的例子:
包含以下示例内容的 city.csv:
FID,city,POINT_X,POINT_Y
0,New York,-73.996786,40.720813
1,Newark,-74.172237, 40.732196
R代码:
# Load packages
library(RgoogleMaps)
library(sp)
# load .csv file
city= read.csv("city.csv", header = TRUE)
# convert to SpatialPointDataFrame
coordinates(city) <- c("POINT_X", "POINT_Y")
proj4string(city) <- CRS("+proj=longlat +datum=WGS84")
# use RgoogleMaps
gc <- geocode('new york, usa')
center <- as.numeric(gc)
ggmap(get_googlemap(center = center, color = 'bw', scale = 4), fullpage = T)
# Plot the city dataset
plot(city, pch = 22, col="black", bg= "yellow", cex = 1.5, add = TRUE)
结果应该是一个带有背景 map 和两个点的图,但这些点没有绘制在 map 上。
是否存在地理编码问题或我错过了什么?是否可以结合使用 ggmap 和 plt 函数?
任何帮助深表感谢!
最佳答案
使用 ggplot2 进行此类工作要容易得多,您可以向 ggmap 图层添加点、多边形、2密度等。
library(RgoogleMaps)
library(sp)
library(ggplot2)
library(ggmap)
P
是 SpatialPointsDataFrame 对象:DB <- data.frame(FID=P$FID, city=P$city)
DB <- cbind(DB, P@coords)
DB <- data.frame(FID=c(0,1), city=c("New York", "Newark"), POINT_X=c(-73.996786,-74.172237), POINT_Y=c(40.720813,40.732196 ))
gc <- geocode("new york, usa")
center <- as.numeric(gc)
G <- ggmap(get_googlemap(center = center, color = 'bw', scale = 4), extent = "device")
G1 <- G + geom_point(aes(x=POINT_X, y=POINT_Y ),data=DB, color="red", size=5)
plot(G1)
这是输出:
关于r - 使用 R 将 basemap 添加到 SpatialPointDataFrames,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22107216/