2016-04-02 31 views
2

我想使用ggmap创建一个映射。我想显示一些点的位置,从具有UTM坐标的数据框开始。但是,我总是以错误消息结尾:'错误:ggplot2不知道如何处理类SpatialPointsDataFrame的数据'。帮助非常大大appriciated ... O_0ggmap:'错误:ggplot2不知道如何处理类SpatialPointsDataFrame的数据'

这是我的例子:

#packages 
library(rgeos) 
library(maptools) 
library(rgdal)  
library(sp)  
library(ggmap) 

#create data frame with UTM coordinates 
Point_ID <- c(1,2) 
Easting <- c(519769,518250) 
Northing <- c(5767155,5766640) 

df <- data.frame(Point_ID, Easting, Northing) 

#set spatial coordinates to create a Spatial object 
myvars <- c("Easting","Northing") 
coords <- df[myvars] 
sp = SpatialPoints(coords) 

spdf = SpatialPointsDataFrame(sp, df) 

#define the projection (UTM coordinates zone 30) 
proj4string(spdf)=CRS("++proj=utm +zone=30") 

#transformed to geographic coordinates (latitude/longitude) 
spdf<- spTransform(spdf, CRS("+proj=longlat +datum=WGS84")) 


#create map 
myLocation <- "Hereford" 
myMap <- get_map(location = myLocation, zoom=16, maptype= "satellite") 

ggmap(myMap)+ 
    geom_point(aes(x = lon, y = lat), data = spdf, 
      alpha = .5, color="darkred", size = 3) 

#Error: ggplot2 doesn't know how to deal with data of class  SpatialPointsDataFrame 

回答

5

摘自SpatialPointsDataFrame

ggmap(myMap)+ 
geom_point(aes(x = Easting, y = Northing), data = as.data.frame(coordinates(spdf)), 
     alpha = .5, color="darkred", size = 3) 

注意协调 - 这两点你给是关闭的边缘地图。

相关问题