~1.5 часа QGISQuickOSM средний

Где открыть кофейню в Твери?

Скачиваем реальные данные о городе через QuickOSM, строим зоны влияния с помощью буферов и находим перспективные места для нового заведения.

Шпаргалка: что такое OSM и какие данные мы берём

OpenStreetMap (OSM) — открытая краудсорсная карта мира, которую наполняют тысячи добровольцев. Из неё можно бесплатно выгрузить данные о дорогах, зданиях, инфраструктуре, точках интереса.

Объекты OSM описываются тегами в формате «ключ = значение». Сегодня используем три набора:

ЧтоТегГеометрия
Кафеamenity=cafeточка
Остановки автобусаhighway=bus_stopточка
Жилые многоквартирные домаbuilding=apartmentsполигон

Логика анализа:

  1. Скачиваем все три слоя через QuickOSM.
  2. Буфер 300 м вокруг существующих кафе → «зона конкурентов».
  3. Буфер 200 м вокруг остановок → «зона удобной доступности».
  4. Из всех жилых домов оставляем те, что попадают в зону доступности и НЕ попадают в зону конкурентов.
  5. Результат — карта домов-кандидатов, рядом с которыми стоит открывать кофейню.

Часть 1. Скачиваем данные о городе через QuickOSM (~25 мин)

Через несколько минут у вас на экране будет полный набор данных о центре Твери — кафе, остановки, жилые дома — скачанных одной кнопкой из открытого источника. Это сильно отличается от ручного создания точек и линий, которым вы занимались раньше.

Шаг 1 — Настройте проект и СК

  1. Откройте QGIS и создайте новый проект.
  2. Меню Проект → Свойства проекта → Системы координат (Project → Properties → CRS).
  3. В строке поиска введите 32636, выберите WGS 84 / UTM zone 36N, нажмите OK.
Настройка системы координат проекта
Окно свойств проекта с выбранной EPSG:32636

Шаг 2 — Добавьте подложку OpenStreetMap

В QGIS 3 уже встроена базовая подложка OSM:

  1. На панели Браузер (Browser) разверните узел XYZ Tiles.
  2. Двойной клик по OpenStreetMap — подложка появится в проекте.
  3. Приблизьтесь к центру Твери (район пл. Михаила Тверского, ул. Советская).
Подложка OSM с центром Твери
Центр Твери в окне карты, масштаб примерно 1:20 000

Шаг 3 — Установите плагин QuickOSM

  1. Меню Модули → Управление и установка модулей.
  2. В строке поиска введите QuickOSM.
  3. Нажмите «Установить».

После установки в меню появится новый пункт: Вектор → QuickOSM → QuickOSM.

Шаг 4 — Скачайте кафе

  1. Откройте Вектор → QuickOSM → QuickOSM.
  2. На вкладке Quick query:
    • Key: amenity
    • Value: cafe
    • In: выберите Canvas Extent (В охвате холста) — то есть «всё, что видно сейчас на карте».
  3. Нажмите Run query.

Через несколько секунд в проекте появятся временные слои — обычно amenity_cafe_points (точки). Это и есть все кафе центра Твери по данным OSM.

Результат запроса — кафе
Точки кафе на карте центра Твери

Шаг 5 — Сохраните кафе как постоянный слой в EPSG:32636

Это ключевой момент: переводим данные в проекционную СК прямо при сохранении.

  1. Правый клик по слою amenity_cafe_pointsЭкспорт → Сохранить объекты как (Save Features As).
  2. Формат: GeoPackage.
  3. Имя файла: tver_cafe.gpkg.
  4. Имя слоя: cafe.
  5. CRS: нажмите иконку «глобус», в поиске наберите 32636, выберите WGS 84 / UTM zone 36N.
  6. Поставьте галочку «Добавить сохранённый файл в проект».
  7. Нажмите OK.
  8. Удалите временный слой amenity_cafe_points (правый клик → Удалить).
Сохранение слоя с переопределением СК
Окно «Сохранить объекты как» с выбранной EPSG:32636

Шаг 6 — Скачайте и сохраните остановки автобуса

Повторите ту же последовательность для остановок:

  1. Вектор → QuickOSM → QuickOSM.
  2. Key: highway, Value: bus_stop, In: Canvas Extent.
  3. Run query.
  4. Правый клик на полученном слое → Экспорт → Сохранить объекты какtver_bus_stops.gpkg, слой bus_stops, CRS: EPSG:32636 → OK.
  5. Удалите временный слой.

Шаг 7 — Скачайте и сохраните жилые дома

  1. Вектор → QuickOSM → QuickOSM.
  2. Key: building, Value: apartments, In: Canvas Extent.
  3. Run query.
  4. Сохраните как tver_buildings.gpkg, слой buildings, CRS: EPSG:32636.
  5. Удалите временный слой.
Все три слоя в проекте
Слои cafe, bus_stops, buildings поверх подложки OSM

Часть 2. Зоны влияния — строим буферы (~25 мин)

Теперь вокруг каждого кафе и каждой остановки построим буферную зону заданного радиуса. Это первый аналитический инструмент в нашем наборе.

Шаг 8 — Буфер вокруг кафе: зона конкурентов (300 м)

  1. Меню Вектор → Геообработка → Буферная зона (Vector → Geoprocessing → Buffer).
  2. Input layer: cafe.
  3. Distance: 300 (единицы — meters, метры).
  4. Поставьте галочку Dissolve result (Объединить результат) — иначе получите десятки отдельных перекрывающихся кругов, нам это не нужно.
  5. Buffered (output): нажмите , выберите «Сохранить в файл», имя tver_cafe_buffer.gpkg.
  6. Нажмите Run.

Шаг 9 — Раскрасьте буфер кафе

  1. Двойной клик по слою буфера → вкладка Символика.
  2. Заливка — красная, прозрачность около 50%.
  3. Обводка — без обводки или тонкая красная.
  4. Нажмите OK.
Буфер вокруг кафе
Красные «облака» вокруг существующих кафе — зоны, куда новой кофейне лезть не стоит

Шаг 10 — Буфер вокруг остановок: зона доступности (200 м)

  1. Тот же инструмент Вектор → Геообработка → Буферная зона.
  2. Input layer: bus_stops.
  3. Distance: 200, meters.
  4. Галочка Dissolve result.
  5. Output: tver_busstop_buffer.gpkg.
  6. Run.

Раскрасьте: заливка зелёная, прозрачность 50%.

Два буфера на карте
Зелёные зоны — куда легко добраться от транспорта. Красные — где густо от конкурентов

Часть 3. Находим дома-кандидаты — пересечение и разность (~25 мин)

У нас есть три полигональных слоя: жилые дома, зона доступности, зона конкурентов. Скрестим их в нужной логике.

Шаг 11 — Пересечение: дома в зоне доступности

Возьмём только те жилые дома, которые попадают в буфер остановок.

  1. Меню Вектор → Геообработка → Пересечение (Vector → Geoprocessing → Intersection).
  2. Input layer: buildings.
  3. Overlay layer: tver_busstop_buffer (буфер остановок).
  4. Intersection (output): buildings_near_transit.gpkg.
  5. Нажмите Run.

Результат — только жилые дома, до которых легко добраться от остановки. Остальные дома исчезли.

Результат пересечения
Дома, пересекающиеся с зелёной зоной доступности

Шаг 12 — Разность: исключаем зону конкурентов

Из «домов рядом с транспортом» вычитаем «зону конкурентов».

  1. Меню Вектор → Геообработка → Разность (Vector → Geoprocessing → Difference).
  2. Input layer: buildings_near_transit (результат предыдущего шага).
  3. Overlay layer: tver_cafe_buffer (буфер кафе).
  4. Difference (output): candidate_buildings.gpkg.
  5. Нажмите Run.

Шаг 13 — Оформите финальную карту

  1. Двойной клик по candidate_buildingsСимволика.
  2. Заливка — яркая (оранжевая или жёлтая), обводка — тёмная.
  3. Прозрачность — 0%, слой должен быть заметным.
  4. OK.

Расставьте слои сверху вниз:

  • candidate_buildings (на самом верху — это главный результат)
  • cafe, bus_stops (точки)
  • tver_cafe_buffer, tver_busstop_buffer (буферы)
  • buildings (все жилые дома — серый «контекст»)
  • OpenStreetMap (подложка)

Стилизуйте buildings светло-серой заливкой с тонкой тёмной обводкой — чтобы они служили фоном, но не отвлекали.

Финальная карта
Оранжевые дома — ваш ответ на вопрос «где открыть кофейню в Твери?»

Бонус 1. Печатный макет А4

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

  1. Меню Проект → Макет → Создать макет.
  2. Введите имя: cafe_suitability.
  3. В окне макета: Добавить → Карту. Растяните прямоугольник на лист.
  4. Добавьте сверху:
    • Заголовок (Текст): «Где открыть кофейню в Твери».
    • Легенду (Add Legend) — оставьте только важные слои: candidate_buildings, cafe, bus_stops, буферы.
    • Масштабную линейку (Add Scale Bar).
    • Стрелку севера (Add Arrow → North Arrow).
  5. Экспортируйте: Макет → Экспорт как PDF или как изображение (PNG).
Готовый макет
Финальный лист, готовый к печати или экспорту

Бонус 2. Кофейню — нет, ПВЗ — да

Повторите весь анализ для другого типа заведения. Логика та же, поменяются только теги и радиусы:

ЗаведениеТег конкурентовРадиус
Аптекаamenity=pharmacy400 м
Шиномонтажshop=car_repair1000 м
Точка кофе с собойamenity=cafe, shop=coffee150 м
Барбершопshop=hairdresser500 м

Подумайте, какие критерии важны именно для вашего объекта — и какие данные OSM можно для них использовать.

Бонус 3. Кому ближе всех? — считаем кандидатов по районам

Если выгрузить через QuickOSM полигоны районов или микрорайонов Твери (запрос place=suburb или admin_level=9), можно сравнить, в каком районе кандидатов больше.

  1. QuickOSM: place=suburb, охват холста, сохранить как tver_districts.gpkg в EPSG:32636.
  2. Полигоны-кандидаты сначала превратим в точки — их потом удобнее считать: Вектор → Инструменты геометрии → Центроиды (Vector → Geometry Tools → Centroids).
  3. Меню Вектор → Анализ → Подсчёт точек в полигонах (Count Points in Polygon).
    • Polygons: районы.
    • Points: центроиды кандидатов.
    • Count field name: candidates.
  4. Раскрасьте районы тематически по полю candidates.

Что мы узнали

  1. QuickOSM — мощный инструмент для получения бесплатных и относительно свежих данных о городе. Освоили базовую логику запросов «ключ = значение» и сохранение временных слоёв в постоянные файлы.
  2. Буферная зона — стандартный способ описать «область влияния» объекта в пространстве. Точки и линии превращаются в полигоны, с которыми можно дальше работать.
  3. Пересечение и разность — две базовые операции пространственной алгебры. Из них собирается большинство анализов пригодности.
  4. Система координат — это серьёзно. В географической СК расстояния измеряются в градусах; чтобы работать в метрах, нужна проекционная СК. Для Твери — EPSG:32636.
  5. Site suitability — комбинация ограничений («где нельзя») и стимулов («где хочется»). Сегодня собрали простой вариант на двух критериях. В реальной задаче критериев десятки, и каждому можно дать свой вес.

Этот же подход — QuickOSM → буферы → пересечение/разность — работает для огромного класса задач: от выбора места под зарядную станцию для электромобилей до планирования зон обслуживания пожарных депо.