3

历史:从静态谷歌地图 png 中提取栅格数据,通过ggimage.

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,不能在这里发布。
顺便说一句,这是该静态地图的 URL:

scale问题:要在包含像素地图的 R 设备上绘制“GPS 坐标” ,我需要data.frame吗?

我看到了这个页面:http : //www-personal.umich.edu/~varel/rdatasets/Langren1644.html 我需要按照他们在这里显示的方式进行缩放吗?

如果是,那么除了scale函数的手册页之外,我还需要了解什么才能完成这项工作?

我在错误的树上吠叫吗?

4

1 回答 1

22

我认为您的错误如下:

  • 试图在图像上绘制地理数据,该图像不知道地图坐标
  • 可能在数据框中转置您的纬度和经度

这是你应该如何做的,分两步:

  1. 获取地图get_map()并将其保存到磁盘使用save()
  2. 绘制数据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)

在此处输入图像描述

于 2012-07-25T15:13:45.463 回答