Как стать автором
Обновить

Инфраструктура у жилья в столице

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров3K

Кадый день вы совершаете почти одни и те же действия - просыпаетесь, чистите зубы, завтракаете, кто-то из вас отводит детей в садик или начальную школу, потом вы идете на работу, возвращаясь с работы вы идете на спортивную тренировку, заходите в магазин или в пункт выдачи заказов и возвращаетесь домой. На выходных идете в парк или в торговый центр на шоппинг, возможно в театр или ночной клуб.

Поиски и сравнения места для жительства включают в себя оценку окрестностей вокруг. А можно пойти с обратной стороны и присмотреть дома где все нужное вам по соседству. Чтобы меньше времени проводить в дороге и больше моментов жизни было с пользой.

Моя программа расчитала десятки миллионов пешеходных дистанций от жилых зданий Москвы в 2км от метро и опубликовал их на Github в виде поисковика жилья для гиков. Про который я рассказал в прошлой статье.

Если интересуют технические подробности про обработку данных, можете почитать мои статьи здесь "Где в Москве жить «неплохо»", "Где 15 минут пешком от дома до метро в Москве", "Жилье в 500м от сетевых продуктовых магазинов в Москве.".

Источник геоданных - OpenStreetMap позволяющий любому пользователю редактировать данные, поэтому если вдруг там не обнаружили ваш любимый магазин, школу, площадку для выгула собак или вдруг жилое здание на карте в реальности является зданием магазина... Читайте документацию, хорошо подумайте о правильности ваших правок и только после этого редактируйте данные. Не относитесь просто как потребитель - улучшайте, как вы возможно уже делали в Народных картах от Яндекс. Главное отличие от Народных карт - эти данные вы можете скачивать и анализировать, в этом главная ценность которую дарит проект OSM.

В этой статье я приведу полезные запросы для поиска места жительства.

Синтаксис предикатов для поиска в официальной документации duckdb. В запросе доступны следующие колонки:

    Column     |      Type       |
---------------+-----------------+
 distance      | smallint        | 
 categories    | text[]          | 
 name          | text            | 
 amenity       | text            | 
 leisure       | text            | 
 shop          | text            | 
 healthcare    | text            | 
 tourism       | text            | 
 historic      | text            | 
 sport         | text[]          | 
 education     | text            | 
 religion      | text            | 
 office        | text            | 
 brand         | text            | 
 network       | text            | 
 operator      | text            | 

Значения для которых можете найти в вики OSM:

Метро

  • Дома в 500м от входов в МЦК: network='МЦК' and 'transport'=any(categories) and distance <= 500

  • Дома в 500м от входов в метро: network='Московский метрополитен' and 'transport'=any(categories) and distance <= 500

  • Если вам нужено найти дома у метро или МЦК в 15 минутах ходьбы: (network='МЦК' or network='Московский метрополитен') and 'transport'=any(categories) and distance <= 1250

Магазины

  • Жилье в 1.5км от Ашана или Атак: distance <= 1500 and (shop='supermarket' or shop='convenience') and brand in ('Ашан','Ашан Сити','Атак')

  • Пятёрочка, ВкусВилл, Дикси, Магнит, Магнолия, Перекрёсток в 500м: distance <= 500 and (shop='supermarket' or shop='convenience') and brand in ('Пятёрочка','ВкусВилл','Дикси','Магнит','Магнолия','Перекрёсток')

  • Пункты выдачи distance <= 1500 and brand in ('Wildberries','Ozon')

  • Торговый центр в 1.5км от жилья:distance <= 1500 and shop='mall'

Дети и учеба

  • Детский садик у дома: distance <= 500 and amenity='kindergarten'

  • Школа рядом: distance <= 1500 and amenity='school'

  • Коледж недалеко: distance <= 1500 and amenity='college'

  • ВУЗ на районе: distance <= 1500 and amenity='university'

Кафе, рестораны и точка

  • Кафе distance <= 1500 and amenity='cafe'

  • Рестораны: distance <= 1500 and amenity='restairant'

  • Фастфуд:distance <= 1500 and amenity='fast_food'

Медицина

  • Аптека поблизости:distance <= 500 and amenity='pharmacy'

  • Поликлиника: distance <= 1500 and amenity='clinic'

  • Больница: distance <= 1500 and amenity='hospital'

  • Стоматолог рядом: distance <= 1500 and amenity='dentist'

Религия

  • Место где проводят службы: distance <= 1500 and amenity='place_of_worship'

  • Мечеть рядом: distance <= 1500 and amenity='place_of_worship' and religion='muslim'

  • Можно указать другие конфессии поблизости, например: distance <= 1500 and amenity='place_of_worship' and religion='christian' или religion='buddhist' religion='jewish' religion='hindu'

Места для прогулок

  • Парки и сады:distance <= 1500 and (leisure='park' or leisure='garden')

  • Либо если вам все равно что на открытом воздухе: distance <= 1500 and 'outdoor'=any(categories)

Спорт

Спортцентр или фитнесс центр поблизости:distance <= 1500 and (leisure='sports_centre' or leisure='fitness_centre')

И можно уточнить какой спорт интересует distance <= 1500 and (leisure='sports_centre' or leisure='fitness_centre') and 'soccer'=any(sport) или fitness, basketball, tennis, table_tennis, running, athletics, volleyball, yoga, ice_hockey, swimming, gymnastics, hockey, skateboard, chess, futsal, football, badminton

Домашние животные

  • Площадка для выгула собак без намордников: distance <= 1500 and leisure='dog_park'

  • Ветеренар поблизости: distance <= 1500 and amenity='veterinary'

  • Приют для бездомных животных рядом: distance <= 1500 and amenity='animal_shelter'

Если не хочется жить прямо у ...

Если вам не хочется чтобы что-то было рядом с домом то можете указать это в поле "Что не хотим:"

Не жить близко к инфекционной больнице или психбольнице в поле "Что не хотим:": distance < 300 and'_specialHealthcare'=any(categories)

Дальше 100м от шумных мест "Что не хотим:": distance < 100 and '_noisy_place'=any(categories)

Например жить не ближе 300м от метро или МЦК в поле "Что не хотим:": distance < 300 and (network='МЦК' or network='Московский метрополитен') and 'transport'=any(categories)

Дома не дальше 1500м но и не ближе 300м от метро и МЦК
Дома не дальше 1500м но и не ближе 300м от метро и МЦК

Технологии

База данных DuckDB Wasm работает прямо в вашем браузере и запрашивает исходные данные с GitHub Pages, поэтому производительность зависит от сетевого соединения и вашего браузера. Но это же дает гибкость и возможности формулировать запросы так, как вам хочется, почти любой сложности, ведь DuckDB Wasm - полноценная аналитическая база данных. И неявное следствие из архитектуры системы - мне не нужно платить за хостинг некомерческого проекта и придумывать способы монетизации. Как следствие для вас - пользователей не будет типичной для онлайн карт бизнес модели "кто заплатил больше, того и чаще и лучше показали" а не то что искали.

Отрисовка карты происходит с помощью WebGL виджета MapLibre GL JS. Данные загружены с OpenStreetMap, предобработаны в OpenStreetMap H3 базе данных PostGIS и выгружены в parquet файлы.

Информацию по разметки данных вы можете найти в вики OpenStreetMap, либо спросить в комментариях к статье.

Спасибо

Надеюсь что этот поисковик вам пригодится https://igor-suhorukov.github.io

Теги:
Хабы:
Всего голосов 8: ↑8 и ↓0+8
Комментарии16

Публикации

Истории

Ближайшие события

15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань