2

我正在尝试将 {OpenStreetMap} 瓦片与来自其他数据的几何图形结合起来,但这在基础 R 和 ggplot 中都被证明是困难的。目标是简单地在地图上绘制一些点。感谢您知道我缺少什么,或者哪些替代方法(可能与其他库)会产生相同的结果。

提前致谢。

require(OpenStreetMap)
require(ggplot2)

lat <- c(63, 48); lon <- c(-20, 8)
map <- openmap(c(lat[1],lon[1]),c(lat[2],lon[2]),4,'osm')
d <- data.frame(x = sample((lon[1]:lon[2]), 10, replace=T), 
                y = sample((lat[1]:lat[2]), 10, replace=T))

# base R plot method
plot(map)
points(d)

# ggplot method
ggplot() + autoplot(map)
ggplot() + autoplot(map) + geom_point(aes(x=d$x, y=d$y))
4

1 回答 1

4

您正在绘制的栅格地图位于墨卡托投影中。您可以将图像转换为 long-lat,也可以将数据转换为墨卡托投影。见:help("openproj")。这是前者:

# base R plot method
mapLL <- openproj(map)
plot(mapLL)
points(d)
于 2013-04-24T18:18:23.247 回答