Для создания интерактивных веб-карт широко используется JavaScript-библиотека Leaflet. Пакет leaflet является интерфейсом к этой библиотеке. Рассмотрим, как с его помощью создавать интерактивные карты.
Для инсталляции пакета, как обычно, введем
install.packages("leaflet")
Теперь подключим пакет к R:
library(leaflet)
Использование пакета начинается с того, что создается виджет (элемент графического интерфейса) "карта" с помощью функции leaflet()
. Затем на карту добавляются слои данных, такие как листы карты (с помощью addTiles()
) или маркеры объектов (addMarkers()
) и т. п.
leaflet поддерживает оператор последовательного выполнения функций %>%
из пакета magrittr:
m <- leaflet() %>%
addTiles() %>% # добавим листы карт OpenStreetMap
addMarkers(lng=174.768, lat=-36.852,
popup="The birthplace of R")
m # Выведем карту на экран
Без использования %>%
те же самые операции реализуются следующим образом:
m <- leaflet()
m <- addTiles(m)
m <- addMarkers(m, lng=174.768, lat=-36.852, popup="The birthplace of R")
m
Существует [[|множество методов]], позволяющих манипулировать картами. Например:
setView()
устанавливает координаты центра карты и масштаб отображения — зум (zoom). Чем зум больше, тем крупнее масштаб;fitBounds()
помещает всю карту в прямоугольную область [lng1, lat1] – [lng2, lat2].
Подробную справку можно получить, набрав ?setView
или ?fitBounds
.
> m %>% setView(lng=174.768, lat=-36.852, zoom=10)
> m %>% fitBounds(174.767,-36.853,174.769,-36.851)
По умолчанию функция addTiles()
использует карты OpenStreetMap. Выбор карт осуществляется функцией addProviderTiles()
. Если, например, нужно использовать карты Esri.WorldTopoMap
, то сделать это можно так:
m %>% addProviderTiles("Esri.WorldTopoMap")
Полный список поддерживаемых форматов карт приведен здесь.
Комментарии
comments powered by Disqus