Подтвердить что ты не робот

Ggmap:: get_map не позволяет точную спецификацию моих углов карты?

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

?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
4b9b3361

Ответ 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)

вы получаете:

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