R: Установите пределы X и Y при использовании qmap (ggplot2)

Я пытаюсь создать карту, используя qmap (часть ggmap). Вот пример кода для иллюстрации вопроса. Это немного глупо, но это чище, чем использование моих собственных данных.

install.packages("ggmap")

library(ggmap)

qmap("Capitol Building, Washington DC", zoom = 15)

Итак, вот мой вопрос: я хотел бы немного увеличить (масштаб = 15) область вокруг здания Капитолия, чтобы получить много деталей улиц. Но я также хочу включить в свою карту монумент Вашингтона. Для этого я хотел бы расширить западную часть карты и сделать ее прямоугольной.

Кто-нибудь знает, как это сделать? Любое понимание будет высоко оценено. Спасибо за терпение к новичку.


person ConfusedEconometricsUndergrad    schedule 10.10.2014    source источник


Ответы (1)


Как это?

library(ggmap)
cap  <- geocode("Capitol Building, Washington DC")
wash <- geocode("Washington Monument, Washington DC")
loc  <- unlist((cap+wash)/2)
ggmap(get_map(location=loc,zoom=15))+coord_fixed(ylim=loc[2]+.005*c(-1,+1))

Таким образом, это извлекает карту, основанную на координатах на полпути между зданием Капитолия и монументом Вашингтона, а затем обрезает ее, устанавливая ylim.

Причина unlist(...) заключается в том, что geocode(...) возвращает фрейм данных, а get_map(...) нужен числовой вектор.

EDIT Ответ на комментарий OP.

coord_fixed(...) задает соотношение сторон 1:1, что означает, что 1° широты равен длине 1° долготы. Чтобы вернуть исходное соотношение сторон карты, используйте coord_map(...).

ggmap(get_map(location=loc,zoom=15))+coord_map(ylim=loc[2]+.005*c(-1,+1))

person jlhoward    schedule 11.10.2014
comment
Спасибо за ваш быстрый и лаконичный ответ. Я заметил, что карта немного растянута по горизонтали; Вы знаете способ обойти это? Кроме того, есть ли способ вытащить западную часть карты без ее повторного центрирования? Я думаю, я спрашиваю, есть ли другой способ указать начальные размеры и масштаб карты, кроме использования материала location=loc,zoom=15. - person ConfusedEconometricsUndergrad; 11.10.2014
comment
Фантастика, все становится ясно. Еще раз спасибо за вашу помощь и терпение. - person ConfusedEconometricsUndergrad; 12.10.2014