ggmap无法绘制特定区域

时间:2013-11-22 11:30:43

标签: r google-maps ggplot2 ggmap

我试图用ggmap在北极地区绘制特定区域。该地区的中心位于拉特附近。 80 lon。 0,遗憾的是只显示了灰色背景和纬度和经度轴。我试图绘制不同的区域,我的代码似乎适用于每个位置,除了lat以外的区域。 73.6。以下是我的代码示例:

library(ggmap)
library(mapproj)
location <- get_map(location = c(lon = 0, lat = 80), zoom = 4, maptype = "hybrid")
ggmap(location)

所以有人知道,为什么ggmap无法绘制此位置?

1 个答案:

答案 0 :(得分:3)

我遇到了同样的问题(当试图绘制Antartica时)并绕过它,我使用ggplot,但依赖ggmap包中的几个函数。 正如@ Henrik的链接所示,地图投影似乎是个问题。

整个想法和代码都是由David Kahle提供的

您可以采取以下措施使其适用于您的案例:

location <- get_map(location = c(lon = 0, lat = 80), zoom = 4, maptype = "hybrid")

#Create a small data frame to pass to ggplot
fourCorners <- expand.grid(
  lon = as.numeric(attr(location, "bb")[, c("ll.lon", "ur.lon")]), 
  lat = as.numeric(attr(location, "bb")[, c("ll.lat", "ur.lat")])
  )
# The inset_raster function needs 4 data coordinates. Pull it out of your "location" that you got via get_map
xmin <- attr(location, "bb")$ll.lon
xmax <- attr(location, "bb")$ur.lon
ymin <- attr(location, "bb")$ll.lat
ymax <- attr(location, "bb")$ur.lat

# Now you are ready to plot it
mp <- ggplot(fourCorners, aes(x = lon, y = lat) ) + 
 inset_raster(location, xmin, xmax, ymin, ymax)            
mp

它为您提供“混合”地图,以(经度= 0,纬度= 80)

为中心

enter image description here