Показ точек — это только начало; нам важно, чтобы карта работала как рабочий инструмент для разбора данных. Скопления объектов должны собираться в кластеры и раскрываться при увеличении, иначе густо заполненные участки сливаются в сплошное пятно. Заложите несколько слоёв с отдельными переключателями, чтобы разные типы данных включались и выключались независимо, и свои значки для меток под тип или состояние объекта. Без панели фильтров проект теряет смысл: отбор по категории, по датам, по числовому диапазону и по строке поиска, причём карта перерисовывается сразу, без перезагрузки. Пригодятся и средства рисования — возможность обвести на карте контур или задать радиус и мгновенно получить перечень всех объектов внутри выделенного участка. Подробности выбранной точки удобнее показывать во всплывающем окне и в боковой панели, аккуратно и без нагромождения.
Данные придут с нашего сервера по API, так что клиентская часть должна забирать их бережно — лучше подгружать по мере сдвига видимой области, а не тянуть весь массив разом. Пространственные запросы вида «что попадает в нарисованную фигуру» и «что ближе всего к указанной точке» обязаны считаться верно. Нужна адаптивная вёрстка, чтобы карта была одинаково удобна на планшете в поездке и на офисном мониторе. К результату мы относим не только рабочий функционал, но и чистый код, внятную документацию и небольшую инструкцию по передаче, чтобы дальше наши сотрудники добавляли слои самостоятельно.
— Карта на Leaflet или Mapbox с плавным перемещением и масштабом
— Кластеры меток, собственные значки и несколько переключаемых слоёв
— Панель фильтров с моментальной перерисовкой и поиском по строке
— Рисование контура и радиуса для выбора объектов
— Пространственные запросы: попадание в область и ближайшая точка
— Адаптивный интерфейс для монитора и планшета