ggmap::get_map не позволяет точно указать углы моей карты?

Я использую пакет R ggmap.

?get_map говорит:

местоположение: адрес, пара долгота/широта (в указанном порядке) или левая/нижняя/правая/верхняя ограничивающая рамка

Мой код:

library(ggmap)
library(mapproj)

lat_bottom = 52.33  # bottom latitude of Berlin
lat_top    = 52.5   # top latitude of Berlin
lon_left   = 13.0   # left longitude of Berlin
lon_rigth  = 13.95  # right longitude of Berlin

mymap <- get_map(location = c(lon_left,lat_bottom,lon_rigth,lat_top),
source="google")
ggmap(mymap)

Почему это дает мне предупреждение:

Предупреждение: ограничивающая рамка предоставлена ​​Google - пространственная протяженность приблизительна. преобразование ограничивающей рамки в спецификацию центра/масштаба. (экспериментальный)

Значит ли это, что у меня нет возможности создать карту именно с такими углами?

Основываясь на совете ниже, я попробовал это:

lat_bottom = 52.33  # bottom latitude of Berlin
lat_top    = 52.68   # top latitude of Berlin
lon_left   = 13.08   # left longitude of Berlin
lon_rigth  = 13.77  # right longitude of Berlin

mylon = c(lon_left,lon_rigth)
mylat = c(lat_bottom,lat_top)

mymap <- get_map(location = c(lon = mean(mylon), lat = mean(mylat)),
               maptype = "roadmap", source = "google", zoom=11) # using zoom
ggmap(mymap)
foo<-ggmap(mymap)+
  scale_x_continuous(limits = c(lon_left,lon_right), expand = c(0, 0)) +
  scale_y_continuous(limits = c(lat_bottom,lat_top), expand = c(0, 0))
foo

Выглядит нормально. Но когда я беру другие координаты (ближе друг к другу), например, как ниже - то карта выглядит странно - она ​​как бы смещается влево на сером фоне...

lat_bottom = 52.35  # new bottom
lat_top    = 52.50  # new top
lon_left   = 13.2   # new left
lon_rigth  = 13.5   # new right

person user2323534    schedule 27.02.2015    source источник
comment
Вы можете получить карту с определенным увеличением. Если вы используете ggplot2, вы можете обрезать карту, используя scale_x_continous и scale_y_continous. Взгляните на эту ссылку. Это может быть то, что вы после.   -  person jazzurro    schedule 27.02.2015
comment
Просто чтобы уточнить мою цель: я стараюсь не использовать масштабирование. Я не знаю заранее (когда пишу код), какую область карты я хочу видеть. Иногда он больше, иногда меньше. Вот почему я должен взять 4 угла из данных, а затем попытаться нарисовать карту с этими углами.   -  person user2323534    schedule 27.02.2015


Ответы (1)


Если вы хотите работать с границами, лучше использовать OpenStreetMap, чем GoogleMaps. Установка границ для GoogleMaps в ggmap не работает. Вместо этого он сделает оценку центральной точки.

Вы можете указать источник, включив source = "osm" в вызов get_map.

С участием:

mymap <- get_map(location = c(13.2,52.35,13.5,52.50), source = "osm")

ggmap(mymap)

ты получаешь:

введите описание изображения здесь

person Jaap    schedule 07.09.2015