Описание проекта
Логика простая. Посетитель заходит на страницу, ему предлагается геолокация либо он вводит адрес в поле поиска — и сразу видит ближайшие точки на живой карте. Когда маркеры стоят близко, они должны собираться в кластер с числом, который распадается при приближении, чтобы плотный город не превращался в кучу нечитаемых булавок. Фильтр по радиусу (например, 5, 10, 25 км) сужает выборку, а список результатов рядом с картой должен быть синхронизирован: клик по карточке подсвечивает маркер и наоборот. Для каждой точки нужна аккуратная карточка с названием, полным адресом, часами работы, телефоном и ссылкой на построение маршрута в карте пользователя.
Данные будут приходить из таблицы или небольшой админ-панели, которую мы сможем править сами без вмешательства в код, поэтому источник точек должен быть настраиваемым, а не зашитым в файлы. Геокодирование адресов можно делать заранее и кэшировать. Для меня важны отзывчивость, скорость и доступность, корректная работа на телефонах и разумный расход квот API. Leaflet с открытыми тайлами вполне устроит; если предложите другой стек — объясните почему.
— Встраиваемый блок карты в стиле сайта, полностью адаптивный
— Поиск по адресу и опциональная геолокация браузера для центрирования
— Фильтр по радиусу и список результатов в двусторонней синхронизации с маркерами
— Кластеризация маркеров с плавным раскрытием и схлопыванием при зуме
— Карточки точек: название, адрес, часы, телефон, ссылка на маршрут
— Редактируемый источник точек (таблица или простая админка) с кэшем геокодирования