Где открыть кофейню в Твери?
Скачиваем реальные данные о городе через QuickOSM, строим зоны влияния с помощью буферов и находим перспективные места для нового заведения.
Шпаргалка: что такое OSM и какие данные мы берём
OpenStreetMap (OSM) — открытая краудсорсная карта мира, которую наполняют тысячи добровольцев. Из неё можно бесплатно выгрузить данные о дорогах, зданиях, инфраструктуре, точках интереса.
Объекты OSM описываются тегами в формате «ключ = значение». Сегодня используем три набора:
| Что | Тег | Геометрия |
|---|---|---|
| Кафе | amenity=cafe | точка |
| Остановки автобуса | highway=bus_stop | точка |
| Жилые многоквартирные дома | building=apartments | полигон |
Логика анализа:
- Скачиваем все три слоя через QuickOSM.
- Буфер 300 м вокруг существующих кафе → «зона конкурентов».
- Буфер 200 м вокруг остановок → «зона удобной доступности».
- Из всех жилых домов оставляем те, что попадают в зону доступности и НЕ попадают в зону конкурентов.
- Результат — карта домов-кандидатов, рядом с которыми стоит открывать кофейню.
Часть 1. Скачиваем данные о городе через QuickOSM (~25 мин)
Через несколько минут у вас на экране будет полный набор данных о центре Твери — кафе, остановки, жилые дома — скачанных одной кнопкой из открытого источника. Это сильно отличается от ручного создания точек и линий, которым вы занимались раньше.
Шаг 1 — Настройте проект и СК
- Откройте QGIS и создайте новый проект.
- Меню Проект → Свойства проекта → Системы координат (Project → Properties → CRS).
- В строке поиска введите
32636, выберите WGS 84 / UTM zone 36N, нажмите OK.
Шаг 2 — Добавьте подложку OpenStreetMap
В QGIS 3 уже встроена базовая подложка OSM:
- На панели Браузер (Browser) разверните узел XYZ Tiles.
- Двойной клик по OpenStreetMap — подложка появится в проекте.
- Приблизьтесь к центру Твери (район пл. Михаила Тверского, ул. Советская).
Шаг 3 — Установите плагин QuickOSM
- Меню Модули → Управление и установка модулей.
- В строке поиска введите QuickOSM.
- Нажмите «Установить».
После установки в меню появится новый пункт: Вектор → QuickOSM → QuickOSM.
Шаг 4 — Скачайте кафе
- Откройте Вектор → QuickOSM → QuickOSM.
- На вкладке Quick query:
- Key:
amenity - Value:
cafe - In: выберите Canvas Extent (В охвате холста) — то есть «всё, что видно сейчас на карте».
- Key:
- Нажмите Run query.
Через несколько секунд в проекте появятся временные слои — обычно amenity_cafe_points (точки). Это и есть все кафе центра Твери по данным OSM.
Шаг 5 — Сохраните кафе как постоянный слой в EPSG:32636
Это ключевой момент: переводим данные в проекционную СК прямо при сохранении.
- Правый клик по слою
amenity_cafe_points→ Экспорт → Сохранить объекты как (Save Features As). - Формат: GeoPackage.
- Имя файла:
tver_cafe.gpkg. - Имя слоя:
cafe. - CRS: нажмите иконку «глобус», в поиске наберите
32636, выберите WGS 84 / UTM zone 36N. - Поставьте галочку «Добавить сохранённый файл в проект».
- Нажмите OK.
- Удалите временный слой
amenity_cafe_points(правый клик → Удалить).
Шаг 6 — Скачайте и сохраните остановки автобуса
Повторите ту же последовательность для остановок:
- Вектор → QuickOSM → QuickOSM.
- Key:
highway, Value:bus_stop, In: Canvas Extent. - Run query.
- Правый клик на полученном слое → Экспорт → Сохранить объекты как →
tver_bus_stops.gpkg, слойbus_stops, CRS: EPSG:32636 → OK. - Удалите временный слой.
Шаг 7 — Скачайте и сохраните жилые дома
- Вектор → QuickOSM → QuickOSM.
- Key:
building, Value:apartments, In: Canvas Extent. - Run query.
- Сохраните как
tver_buildings.gpkg, слойbuildings, CRS: EPSG:32636. - Удалите временный слой.
Часть 2. Зоны влияния — строим буферы (~25 мин)
Теперь вокруг каждого кафе и каждой остановки построим буферную зону заданного радиуса. Это первый аналитический инструмент в нашем наборе.
Шаг 8 — Буфер вокруг кафе: зона конкурентов (300 м)
- Меню Вектор → Геообработка → Буферная зона (Vector → Geoprocessing → Buffer).
- Input layer:
cafe. - Distance:
300(единицы — meters, метры). - Поставьте галочку Dissolve result (Объединить результат) — иначе получите десятки отдельных перекрывающихся кругов, нам это не нужно.
- Buffered (output): нажмите
…, выберите «Сохранить в файл», имяtver_cafe_buffer.gpkg. - Нажмите Run.
Шаг 9 — Раскрасьте буфер кафе
- Двойной клик по слою буфера → вкладка Символика.
- Заливка — красная, прозрачность около 50%.
- Обводка — без обводки или тонкая красная.
- Нажмите OK.
Шаг 10 — Буфер вокруг остановок: зона доступности (200 м)
- Тот же инструмент Вектор → Геообработка → Буферная зона.
- Input layer:
bus_stops. - Distance:
200, meters. - Галочка Dissolve result.
- Output:
tver_busstop_buffer.gpkg. - Run.
Раскрасьте: заливка зелёная, прозрачность 50%.
Часть 3. Находим дома-кандидаты — пересечение и разность (~25 мин)
У нас есть три полигональных слоя: жилые дома, зона доступности, зона конкурентов. Скрестим их в нужной логике.
Шаг 11 — Пересечение: дома в зоне доступности
Возьмём только те жилые дома, которые попадают в буфер остановок.
- Меню Вектор → Геообработка → Пересечение (Vector → Geoprocessing → Intersection).
- Input layer:
buildings. - Overlay layer:
tver_busstop_buffer(буфер остановок). - Intersection (output):
buildings_near_transit.gpkg. - Нажмите Run.
Результат — только жилые дома, до которых легко добраться от остановки. Остальные дома исчезли.
Шаг 12 — Разность: исключаем зону конкурентов
Из «домов рядом с транспортом» вычитаем «зону конкурентов».
- Меню Вектор → Геообработка → Разность (Vector → Geoprocessing → Difference).
- Input layer:
buildings_near_transit(результат предыдущего шага). - Overlay layer:
tver_cafe_buffer(буфер кафе). - Difference (output):
candidate_buildings.gpkg. - Нажмите Run.
Шаг 13 — Оформите финальную карту
- Двойной клик по
candidate_buildings→ Символика. - Заливка — яркая (оранжевая или жёлтая), обводка — тёмная.
- Прозрачность — 0%, слой должен быть заметным.
- OK.
Расставьте слои сверху вниз:
candidate_buildings(на самом верху — это главный результат)cafe,bus_stops(точки)tver_cafe_buffer,tver_busstop_buffer(буферы)buildings(все жилые дома — серый «контекст»)- OpenStreetMap (подложка)
Стилизуйте buildings светло-серой заливкой с тонкой тёмной обводкой — чтобы они служили фоном, но не отвлекали.
Бонус 1. Печатный макет А4
Соберём результат в макет, который можно распечатать или отдать заказчику.
- Меню Проект → Макет → Создать макет.
- Введите имя:
cafe_suitability. - В окне макета: Добавить → Карту. Растяните прямоугольник на лист.
- Добавьте сверху:
- Заголовок (Текст): «Где открыть кофейню в Твери».
- Легенду (Add Legend) — оставьте только важные слои:
candidate_buildings,cafe,bus_stops, буферы. - Масштабную линейку (Add Scale Bar).
- Стрелку севера (Add Arrow → North Arrow).
- Экспортируйте: Макет → Экспорт как PDF или как изображение (PNG).
Бонус 2. Кофейню — нет, ПВЗ — да
Повторите весь анализ для другого типа заведения. Логика та же, поменяются только теги и радиусы:
| Заведение | Тег конкурентов | Радиус |
|---|---|---|
| Аптека | amenity=pharmacy | 400 м |
| Шиномонтаж | shop=car_repair | 1000 м |
| Точка кофе с собой | amenity=cafe, shop=coffee | 150 м |
| Барбершоп | shop=hairdresser | 500 м |
Подумайте, какие критерии важны именно для вашего объекта — и какие данные OSM можно для них использовать.
Бонус 3. Кому ближе всех? — считаем кандидатов по районам
Если выгрузить через QuickOSM полигоны районов или микрорайонов Твери (запрос place=suburb или admin_level=9), можно сравнить, в каком районе кандидатов больше.
- QuickOSM:
place=suburb, охват холста, сохранить какtver_districts.gpkgв EPSG:32636. - Полигоны-кандидаты сначала превратим в точки — их потом удобнее считать: Вектор → Инструменты геометрии → Центроиды (Vector → Geometry Tools → Centroids).
- Меню Вектор → Анализ → Подсчёт точек в полигонах (Count Points in Polygon).
- Polygons: районы.
- Points: центроиды кандидатов.
- Count field name:
candidates.
- Раскрасьте районы тематически по полю
candidates.
Что мы узнали
- QuickOSM — мощный инструмент для получения бесплатных и относительно свежих данных о городе. Освоили базовую логику запросов «ключ = значение» и сохранение временных слоёв в постоянные файлы.
- Буферная зона — стандартный способ описать «область влияния» объекта в пространстве. Точки и линии превращаются в полигоны, с которыми можно дальше работать.
- Пересечение и разность — две базовые операции пространственной алгебры. Из них собирается большинство анализов пригодности.
- Система координат — это серьёзно. В географической СК расстояния измеряются в градусах; чтобы работать в метрах, нужна проекционная СК. Для Твери — EPSG:32636.
- Site suitability — комбинация ограничений («где нельзя») и стимулов («где хочется»). Сегодня собрали простой вариант на двух критериях. В реальной задаче критериев десятки, и каждому можно дать свой вес.
Этот же подход — QuickOSM → буферы → пересечение/разность — работает для огромного класса задач: от выбора места под зарядную станцию для электромобилей до планирования зон обслуживания пожарных депо.