历史记录:从静态Google地图png中提取的栅格数据,通过ggimage
将其加载到R设备上。
library (png)
library (ggmap)
rasterArray <- readPNG ("My.png")
x = c (40.702147,40.718217,40.711614)
y = c (-74.012318,-74.015794,-73.998284)
myData <- data.frame (x, y)
print (ggimage (rasterArray, fullpage = TRUE, coord_equal = FALSE)
+ geom_point (aes (x = x, y = y), data = myData, colour = I("green"),
size = I(5), fill = NA))
我确实在dput
上运行rasterArray
,但输出为20 MB,无法在此发布。
顺便说一句,this is the URL of that static map:
问题:要在包含地图的R设备上绘制“GPS坐标”(以像素为单位),我是否需要scale
data.frame
?
我看到了这个页面:http://www-personal.umich.edu/~varel/rdatasets/Langren1644.html 我是否需要按照他们在这里展示的方式进行缩放?
如果是,那么除了scale
函数的手册之外的其他内容我还需要了解才能完成这项工作吗?
我在错误的树上吠叫吗?
答案 0 :(得分:22)
我认为你的错误如下:
以下是您应该如何执行此操作,分两步:
get_map()
获取地图,并使用save()
ggmap()
首先,获取地图。
library (ggmap)
# Read map from google maps and save data to file
mapImageData <- get_googlemap(
c(lon=-74.0087986666667, lat=40.7106593333333),
zoom=15
)
save(mapImageData, file="savedMap.rda")
然后,在新的会话中:
# Start a new session (well, clear the workspace, to be honest)
rm(list=ls())
# Load the saved file
load(file="savedMap.rda")
# Set up some data
myData <- data.frame(
lat = c (40.702147, 40.718217, 40.711614),
lon = c (-74.012318, -74.015794, -73.998284)
)
# Plot
ggmap(mapImageData) +
geom_point(aes(x=lon, y=lat), data=myData, colour="red", size=5)