Отрегулируйте размер шрифта на участках карты в ggmap

Я пытаюсь нанести несколько точек на карту Германии, используя пакет ggmap, который отлично работает. Однако я хотел бы внести некоторые конкретные изменения и не знаю, как это сделать и возможно ли это вообще.

Чтобы сделать карты, я делаю следующее (d - фрейм данных с долготой и широтой):

map <- get_map(location = c(10.25828, 51.11484), zoom = 6, maptype = "terrain")
p <- ggmap(map)
p <- p + scale_x_continuous(limits = c(6.09500,14.95306)) + scale_y_continuous(limits = c(47.39889,55.01250)+c(0,-0.1)) 
p <- p + xlab("Longitude") + ylab("Latitude")

Затем на этой карте я наношу несколько точек. Теперь, если я установлю масштаб = 6, как указано выше, тогда карта будет очень подробной, и будет напечатано много названий городов, а также некоторые белые линии для дорог. Из-за этого карта выглядит слишком "переполненной". Вот как выглядит карта:  zoom = 6

Размер PDF-файла также довольно велик, что не очень практично, если я хочу иметь несколько карт.

С другой стороны, если я установлю масштаб = 5, то фон будет менее детализированным, будет отображаться меньше дорог и т. Д., И файл будет меньше. Однако напечатанный шрифт названий городов и стран слишком крупный. Вот как это выглядит:

zoom 6

Итак, мой вопрос: можно ли каким-то образом получить карту с деталями, как при zoom = 5, но с размером шрифта названий стран и городов, как при zoom = 6?

заранее спасибо


person user3825755    schedule 26.01.2016    source источник


Ответы (2)


Если вы измените значение с get_map на get_googlemap, вы можете передать строку в аргумент style, который будет передан в API статических карт Google. См. документацию и важный ссылка.

Я не думаю, что вы можете изменить размер текста, но вы можете упростить дороги и удалить определенные метки следующим образом:

map <- get_googlemap(center = c(10.25828, 51.11484), zoom = 6, maptype = "terrain", 
                     style = 'feature:road|element:all|visibility:simplified&style=feature:administrative.locality|element:labels|visibility:off')

который возвращается

упрощенная карта Германии

Если вам нужно больше меток, их, вероятно, будет проще вставить позже в R. Отрегулируйте по своему усмотрению.

person alistaire    schedule 26.01.2016
comment
работает отлично, спасибо! Я решил пойти с map <- get_googlemap( center = c(10.25828, 51.11484), zoom = 6, maptype = "terrain", style = 'feature:road|element:all|visibility:off&style=feature:administrative.locality|element:labels|visibility:simplified' ) - person user3825755; 26.01.2016
comment
Еще один быстрый вопрос: я мог бы в конечном итоге создать множество таких карт. Есть ли у вас какие-либо предложения (например, выбор параметра style = ...) о том, как сохранить небольшие размеры файлов PDF? - person user3825755; 26.01.2016
comment
Единственный реальный способ - снизить качество изображения. По умолчанию get_googlemap устанавливает scale = 2, что увеличивает разрешение. Если вы установите его обратно на 1, вы получите карту примерно в четверть размера с половиной разрешения. Однако, действительно ли это практичный вариант, зависит от того, для чего вы используете карты. - person alistaire; 26.01.2016
comment
Кроме того, visibility:simplified, похоже, не делает ничего, кроме уменьшения белой тени на этикетках; вам может быть лучше просто пойти с 'feature:road|element:all|visibility:off'. - person alistaire; 26.01.2016
comment
Спасибо, поведение опции scale немного странное. Хотя стандартным параметром должно быть scale = 2, если я укажу scale = 1, возвращаемый pdf будет таким же, как без указания какого-либо scale. С другой стороны, если я специально установил scale = 2, pdf будет примерно вдвое больше. - person user3825755; 27.01.2016
comment
Странно, у меня по умолчанию scale = 2, как написано. Может дело в версии? - person alistaire; 27.01.2016

Насколько мне известно, большинство картографических сервисов включают метки в отображаемые фрагменты карты. У меня никогда не было этой проблемы в r, но с другими картографическими сервисами. Визуализация с меньшими надписями с использованием настраиваемого картографического сервиса должна быть возможна, но ggmap предлагает только карты CloudMade, которые могут быть слишком дорогими.

Я бы порекомендовал использовать другую библиотеку, если это возможно, возможно, ту, которая описана на r-bloggers.com они используют карту, созданную на заказ из MapBox бесплатную услугу (до определенного предела), которую я бы порекомендовал.

person Leon    schedule 26.01.2016