Анализ доступности объектов
Создание буферных зон
Перед тем, как строить буферные зоны объектов, следует их перепроецировать в плоскую прямоугольную систему координат.
Буферная зона - это область на карте, каждая точка внутри которой находится в пределах заданного расстояния от исходного объекта.

Буферные зоны - это один из тех инструментов, которые зависимы от системы координат исходного слоя. То есть размер буфера может быть задан только в единицах измерения слоя.
Для создания буферных зон есть одноименный инструмент Буферизация в панели инструментов анализа.

Как видите, у нас есть несколько очень похожих инструментов, мы с вами будем пользоваться самым простым из них.
Что же делают остальные?
буфер переменной ширины - размер буферной зоны будет зависеть от величины какого-то показателя;
множественный буфер - создание сразу нескольких буферных зон с определенным шагом по расстоянию;
конические буферы (на самом деле клиновидные) - буфер для линейного объекта с разными значениями размера в начале и конце линии;
односторонний буфер - создание буфера только с одной стороны линейного объекта;
создать клиновидные буферы - создание буферов в форме сектора круга от точечных объектов.


В качестве размера буферной зоны мы воспользуемся основным градостроительным нормативом доступности для школ - 500 метров до жилых зданий.
Если вы использовали другие объекты, то вы можете взять другое расстояние.
Например, для детских садов зона доступности - 300 метров, для поликлиник - 1000 метров.
Для объектов коммерческой инфраструктуры нормативов нет, но вы можете взять свое произвольное значение.

Так как в нашем случае буферные зоны строятся для точечных объектов, то основным параметром будет расстояние - размер зоны.
Также роль будет играть параметр Выполнить слияние результирующих полигонов: при его выборе все полученные полигоны будут объединены в один объект.
Если вы хотите сразу сохранить свой слой без создания временного файла, то вы можете нажать на кнопку
и выбрать пункт Сохранить в файл, после чего выбрать место для сохранения и указать имя файла.
В итоге вы увидите новый слой в панели слоев и его отображение на карте.

Поиск объектов по расположению
Определение зданий, попавших в границы буферных зон
Далее мы можем осуществить поиск домов, которые попадают в заданные области обслуживания.
Для поиска объектов есть группа инструментов Вектор — Выборка.
Часть инструментов в ней начинается со слова Выбрать (Выделить), а часть - Извлечь. Разница между ними в том, что в первом случае объекты просто выделяются в исходном слое, а во втором - объекты, соответствующие заданным условия, извлекаются в новый слой.
Краткое описания инструментов:
выбрать/извлечь по атрибуту - поиск объектов по значению одного из атрибутов;
выбрать/извлечь по выражению - поиск объектов по значениям нескольких атрибутов одновременно;
выбрать/извлечь по пространственному отношению - поиск объектов по их расположению относительно объектов другого слоя;
выделить/извлечь в пределах расстояния - поиск объектов в пределах заданного расстояния от других объектов;
случайное выделение/случайное извлечение - случайная выборка объектов из слоя (заданного числа объектов или заданного процента объектов);
случайное выделение в подмножествах/случайное извлечение в подмножествах - сначала слой разбивается по категориям по одному из атрибутов, потом из каждой категории извлекается заданное число или заданный процент объектов.
Нам нужно определить, какие здания попадают в буферные зоны, поэтому нужно воспользоваться выбрать\извлечь по пространственному отношению.
Для выбора объектов нужно сначала указать в каком слое осуществляется поиск (слой со зданиями), геометрический оператор (как объекты расположены относительно объектов другого слоя) и слой для сравнения (буферные зоны). Геометрические операторы в данном случае лучше выбирать Пересекает и Находится внутри.

По результатам извлечения вы получите новый слой, который будет содержать только здания, удовлетворяющие заданным условиям.

Инструмент Выбрать по расположению работает аналогично, но результатом у вас будет не просто новый слой, а выделенный набор объектов в текущем слое.
Такеж вы можете попробовать найти здания в пределах заданного расстояния от школ при помощи инструментов Выделить в пределах расстояния/Извлечение в пределах расстояния.
Однако следует помнить, что расстояние будет определяться в системе координат проекта, поэтому будет отличаться от того, что получено при помощи буферных зон.
Расчет количества доступных школ
Рассчитаем число доступных школ для каждого из наших зданий с использованием выражения агрегирования.

aggregate( 'school_bufer_f66eb7f4_5fbc_470a_acf4_0fd3649f38e1', aggregate:='count',expression:="osm_id", filter:=within(geometry(@parent),@geometry))
Как видите, выражение очень похоже на то, что мы уже использовали, меняются только некоторые аргументы.
Во-первых, используется другой тип агрегирования - count, то есть подсчет количества; во-вторых, используется другое выражение фильтрации - в этом случае мы ищем объекты исходного слоя, попавшие внутрь буферных зон.
По итогам расчета получен новый атрибут, в котором указано количество школ, находящееся в радиусе доступности.
