使用R将basemap添加到SpatialPointDataFrames

使用R将basemap添加到SpatialPointDataFrames,r,plot,geospatial,rgooglemaps,R,Plot,Geospatial,Rgooglemaps,我想在我的绘图中添加一个基础图,它可以可视化三个空间点数据帧。 我已经尝试过maptools和RgoogleMaps软件包,但两者都不起作用,这是我想要的。 我的问题是:SpatialPointDataFrames不是在谷歌地图背景上绘制的 一个简单的例子: 包含以下示例内容的city.csv文件: FID,city,POINT_X,POINT_Y 0,New York,-73.996786,40.720813 1,Newark,-74.172237, 40.732196 R代码: # Loa

我想在我的绘图中添加一个基础图,它可以可视化三个空间点数据帧。 我已经尝试过maptools和RgoogleMaps软件包,但两者都不起作用,这是我想要的。
我的问题是: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)
#加载包
图书馆(RgoogleMaps)
图书馆(sp)
#加载.csv文件
city=read.csv(“city.csv”,header=TRUE)
#转换为空间点数据帧

坐标(城市)这是两种不同的框架(网格和基础图形)。虽然,两者的结合是可能的,但我建议坚持使用ggplot


您可以使用
geom_point()
轻松添加点,例如,请参见答案。

使用ggplot2进行此类工作要简单得多,您可以添加点、多边形、2密度等。。。要映射图层

library(RgoogleMaps)
library(sp)
library(ggplot2)
library(ggmap)
p
是空间点数据帧对象:

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)

DB最近,除了ggplot2之外,还有像和这样的包可以处理这个问题。关于R的传单,请参见:


谢谢您的回答。不幸的是,我仍然有一些问题要包括我的SpatialPointDataFrame。我想通过使用“DB Ok”将DB分配给SpatialPointDataFrame。对于警告(不推荐使用fullpage),只需更改
fullpage=T
extent=“设备“
。第二个问题是,如果网格图形不知道如何提取要打印的空间坐标,那么让我们将SpatialPolygonsDataFrame转换为data.frame。我已经编辑了原始答案以满足这些更改。非常感谢。工作起来很有魅力:)剩下两个问题:1。)那么……是否不可能将SpatialPointDataFrames与ggplot2一起使用,而我必须使用Traditional data.frames?2.)使用ggplot2设计地图有什么好的参考吗?比如对可能的参数(如符号类型等)的简短概述。?直到现在我只知道如何设置颜色和大小。1)我不知道(但我可能错了),所以我通常将它们转换为数据帧。在SPointsDF的例子中,它通常非常简单,但是当你使用SPolygons(shapefile)时,你有一些额外的步骤可以学习。2) 我想你可以从中得到一些很酷的东西。ggmap的工作原理与ggplot2非常相似,因此您可以添加大多数ggplot2参数,这些参数可以在许多在线教程中找到。感谢您的帮助:)对未来非常有用,但目前我只使用点…幸运的是:P