# загрузка пакетов
library('data.table')
library('WDI')
library('leaflet')
# https://cran.r-project.org/bin/windows/Rtools/
# devtools::install_github('mages/googleVis')
suppressPackageStartupMessages(library('googleVis'))

# для загрузки свежей версии pandoc:
#  https://github.com/pandoc-extras/pandoc-nightly/releases/tag/hash-7c20fab3
#  архив pandoc-windows-7c20fab3.zip распаковать в RStudio/bin/pandoc

Карты на основе leaflet

На этой карте показано расположение аптек в г.Уренгой. Список аптек получен с Портала открытых данных РФ, географические координаты определены по адресам с помощью API Яндекс Геокодера.

# картинка-логотип для маркеров объекта
fileURL <- 'https://github.com/aksyuk/R-data/raw/master/pics/pharmacy-icon.png'
pharm.icon <- makeIcon(iconUrl = fileURL, 
                       iconWidth = 31,
                       iconHeight = 31,
                       iconAnchorX = 31,
                       iconAnchorY = 31)

fileURL <- 'https://raw.githubusercontent.com/aksyuk/R-data/master/examples/Urengoy_pharmacies.csv'

DT.loc <- read.csv2(fileURL, stringsAsFactors = F)
DT.loc$lat <- as.numeric(DT.loc$lat)
DT.loc$long <- as.numeric(DT.loc$long)

# подписи к объектам с гиперссылками
map.sites <- paste0(DT.loc$Наименование.объекта, '</br>',
                    DT.loc$Режим.работы, '</br>',
                    '<em>', DT.loc$Контактный.телефон, '</em>')

# создаём виджет с картой
myMap <- DT.loc %>% leaflet(width = 800, height = 800) %>% 
addTiles() %>% addMarkers(icon = pharm.icon, popup = map.sites)

# рисуем карту
myMap

Карта построена по данным схемы размещения источников твёрдых бытовых отходов в Ямало-Ненецком автономном округе (Портал открытых данных РФ). Радиусы пропорциональны численности населения на 1 января 2016 года.

fileURL <- 'https://raw.githubusercontent.com/aksyuk/R-data/master/examples/YNao_tbo.csv'

DT.rad <- read.csv2(fileURL, stringsAsFactors = F, na.strings = '-')
DT.rad <- na.omit(DT.rad)

popups <- paste0('<b>', DT.rad$Наименование.источника.образования.отходов,
                 '</b></br>', DT.rad$Численность.населения.МО.на.01.01.2016.г.,
                 ' чел.')

DT.rad %>%
leaflet() %>%
addTiles() %>%
addMarkers(popup = popups,
           clusterOptions = markerClusterOptions()) %>% 
addCircles(weight = 1, radius = sqrt(DT.rad$Численность.населения.МО.на.01.01.2016.г.) * 100)

Использованы пакеты R

  1. Matt Dowle and Arun Srinivasan (2021). data.table: Extension of data.frame. R package version 1.14.0. https://CRAN.R-project.org/package=data.table
  2. Vincent Arel-Bundock (2021). WDI: World Development Indicators and Other World Bank Data. R package version 2.7.4. https://CRAN.R-project.org/package=WDI
  3. Joe Cheng, Bhaskar Karambelkar and Yihui Xie (2021). leaflet: Create Interactive Web Maps with the JavaScript 'Leaflet' Library. R package version 2.0.4.1. https://CRAN.R-project.org/package=leaflet
  4. Markus Gesmann and Diego de Castillo. Using the Google Visualisation API with R. The R Journal, 3(2):40-44, December 2011.

Источники данных

  1. Dynamic Graphics with the googleVis Package http://rpubs.com/gallery/googleVis

  2. Дмитрий Храмов, «Сбор данных в Интернете на языке R». – М.: ДМК Пресс, 2017. – 280 с.

  3. Документация по API Геокодера от Яндекс https://tech.yandex.ru/maps/doc/geocoder/desc/concepts/about-docpage/

  4. Simon Munzert, Christian Rubba, Peter Meisner, Dominic Nyhuis Automated Data Collection with R. Wiley, 2015 https://books.google.ru/books?id=X-7sBQAAQBAJ&pg=PA96&lpg=PA96&dq=r+xml+xpath+returns+empty&source=bl&ots=OSnRWmFKTR&sig=ACfU3U2wE7shk3mFHrLrlMkFSfwvuAYpEg&hl=ru&sa=X&ved=2ahUKEwiu8_nVmrHhAhUMs4sKHe5vDFIQ6AEwCXoECAkQAQ#v=onepage&q=r%20xml%20xpath%20returns%20empty&f=false