Date Редакция Категория comp Теги R / карты

Для создания интерактивных веб-карт широко используется 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  # Выведем карту на экран

first_map.png

Без использования %>% те же самые операции реализуются следующим образом:

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)

zoom.png

> m %>% fitBounds(174.767,-36.853,174.769,-36.851)

bounds.png

По умолчанию функция addTiles() использует карты OpenStreetMap. Выбор карт осуществляется функцией addProviderTiles(). Если, например, нужно использовать карты Esri.WorldTopoMap, то сделать это можно так:

m %>% addProviderTiles("Esri.WorldTopoMap")

esri.png

Полный список поддерживаемых форматов карт приведен здесь.



Комментарии

comments powered by Disqus