ggmap 和 Google 地球没有给出相同的位置 (R)

ggmap and Google Earth not giving same position (R)

我目前正在尝试绘制瑞士一些气象站的位置。在 ggmap 和 geom_point.

中使用非常标准的代码
register_google(key = "YOUR KEY") 
map <- get_map(location='Bern', zoom=12, maptype = "terrain", color = "color")
ggmap(map) + geom_point( aes(x=stations_coord$long, y=stations_coord$lat)
                         , data = stations_coord, colour = "red", size = 3 )

问题:与 Google 地球

比较时,所有值在图中的位置都错了

这里以伯尔尼站为例。

我真的不明白这怎么可能。也没有关于此问题的讨论帖。

谁能帮帮我?

卫星地图和地形图使用不同的基准面。您正在将卫星图像与地形图进行比较——它们是不同的地图,可能使用不同的基准。 google earth(您的网络浏览器的屏幕截图)的默认数据是 WGS84。我不知道地形图的默认基准是什么,但它似乎有所不同。

尝试改变 'maptype = "satellite"' 你会得到相同的 lat/long:

map <- get_map(location='Bern', zoom=12, maptype = "satellite", color = "color")
ggmap(map) + geom_point( aes(x=stations_coord$long, y=stations_coord$lat)
                        , data = stations_coord, colour = "red", size = 3 )

进一步阅读数据:https://en.wikipedia.org/wiki/Geodetic_datum

旁注:事故总是因此而发生。读取 GPS 的船舶正在使用一个数据,而它们的海图(地图)在另一个数据中,因此它们不在他们认为的位置并且可能会撞到东西。这也可能发生在飞机和陆地导航中。

底线:ggmap 使用与您告诉它查看的地图关联的数据。你告诉 ggmap 查看一种类型的地图(地形)并将其与另一种类型的地图(卫星)进行比较 - 可能是不同的数据。