library(tidyverse)
library(leaflet)
library(sf)
# 1. Загрузка данных (проверь, что пути верные!)
load("~/Yandex.Disk.localized/libraries_stat_2023.Rdata")
load("~/Yandex.Disk.localized/libs_sf (1).Rdata")
# 2. Создание иконки (ВАЖНО: До вызова leaflet)
# Попробуй указать полный путь или убедись, что файл в корне проекта
icon_path <- "~/Yandex.Disk.localized/иконка дз.jpg"
# Проверка: если файл не найден, R выдаст предупреждение в консоль
if(!file.exists(icon_path)) {
message("ВНИМАНИЕ: Файл иконки не найден по пути: ", getwd(), "/", icon_path)
}
my_icon <- makeIcon(
iconUrl = icon_path,
iconWidth = 30,
iconHeight = 30,
iconAnchorX = 15,
iconAnchorY = 30
)
# 3. Палитра
pal <- colorNumeric(palette = "YlOrRd", domain = libraries_stat_2023$density)
# 4. Сборка карты
map <- leaflet() %>%
addTiles() %>%
# Слой регионов
addPolygons(
data = libraries_stat_2023,
fillColor = ~pal(density),
weight = 1, color = "white", fillOpacity = 0.7,
label = ~paste0(region, ": ", density)
) %>%
# Слой точек (проверь аргумент icon!)
addMarkers(
data = libs_sf,
icon = my_icon, # Используем созданный выше объект
clusterOptions = markerClusterOptions(),
popup = ~paste0("<b>", name, "</b><br>", address)
) %>%
addLegend(
data = libraries_stat_2023,
pal = pal, values = ~density,
title = "Библиотек на 1000 чел.", position = "bottomright"
) %>%
addScaleBar(position = "bottomleft")
# Отображаем результат
mapДомашнее задание 18
Импортируем библиотеки и добавляем датасет: