Кадый день вы совершаете почти одни и те же действия — просыпаетесь, чистите зубы, завтракаете, кто-то из вас отводит детей в садик или начальную школу, потом вы идете на работу, возвращаясь с работы вы идете на спортивную тренировку, заходите в магазин или в пункт выдачи заказов и возвращаетесь домой. На выходных идете в парк или в торговый центр на шоппинг, возможно в театр или ночной клуб.
Поиски и сравнения места для жительства включают в себя оценку окрестностей вокруг. А можно пойти с обратной стороны и присмотреть дома где все нужное вам по соседству. Чтобы меньше времени проводить в дороге и больше моментов жизни было с пользой.
Моя программа расчитала десятки миллионов пешеходных дистанций от жилых зданий Москвы в 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)
Технологии
База данных DuckDB Wasm работает прямо в вашем браузере и запрашивает исходные данные с GitHub Pages, поэтому производительность зависит от сетевого соединения и вашего браузера. Но это же дает гибкость и возможности формулировать запросы так, как вам хочется, почти любой сложности, ведь DuckDB Wasm — полноценная аналитическая база данных. И неявное следствие из архитектуры системы — мне не нужно платить за хостинг некомерческого проекта и придумывать способы монетизации. Как следствие для вас — пользователей не будет типичной для онлайн карт бизнес модели «кто заплатил больше, того и чаще и лучше показали» а не то что искали.
Отрисовка карты происходит с помощью WebGL виджета MapLibre GL JS. Данные загружены с OpenStreetMap, предобработаны в OpenStreetMap H3 базе данных PostGIS и выгружены в parquet файлы.
Информацию по разметки данных вы можете найти в вики OpenStreetMap, либо спросить в комментариях к статье.
Спасибо
Надеюсь что этот поисковик вам пригодится https://igor-suhorukov.github.io
ссылка на оригинал статьи https://habr.com/ru/articles/774516/
Добавить комментарий