Проверяет умение работать с геоданными в Maps API: строить полигоны, отображать множество точек и кастомизировать балуны для интерактивных карт.
Работа с картами в вебе строится вокруг объекта карты и слоёв, которые на неё добавляются. Полигон — это замкнутая фигура из набора координат, точка — отдельный маркер, а балун — всплывающее окно, привязанное к объекту. В разных API (Yandex Maps, Google Maps, Leaflet) названия отличаются, но принцип один: создаём объект, передаём координаты и опции, добавляем на карту.
Полигон задаётся массивом координат вершин. Важно, чтобы первая и последняя точки совпадали или API сам замыкал контур. Можно задавать цвет заливки, обводку и прозрачность.
const polygon = new ymaps.Polygon([
[[55.7, 37.6], [55.8, 37.7], [55.75, 37.8]]
], {
fillColor: '#00FF0080',
strokeColor: '#0000FF',
strokeWidth: 3
});
map.geoObjects.add(polygon);Если точек сотни и тысячи, добавлять их по одной напрямую — плохая идея: карта начнёт тормозить. Решение — кластеризация: точки группируются в один маркер с числом, а при приближении раскрываются.
const clusterer = new ymaps.Clusterer({ clusterDisableClickZoom: true });
const points = data.map(p => new ymaps.Placemark([p.lat, p.lng], {
balloonContent: `${p.name}${p.address}`
}));
clusterer.add(points);
map.geoObjects.add(clusterer);Балун можно наполнить любым HTML: заголовок, описание, кнопки, изображения. В Yandex Maps это свойства balloonContentHeader, balloonContentBody, balloonContentFooter. В Leaflet — метод bindPopup с HTML-строкой или DOM-элементом. Для сложной вёрстки используют кастомный layout.
const placemark = new ymaps.Placemark([55.75, 37.62], {
balloonContentHeader: 'Офис',
balloonContentBody: 'Москва, ул. Пример, 1',
balloonContentFooter: 'Подробнее'
}, { preset: 'islands#blueIcon' });
map.geoObjects.add(placemark);Итог: полигоны, точки и балуны — базовые строительные блоки любой карты. Применяйте кластеризацию для больших наборов и кастомные балуны для интерактивного контента, чтобы карта оставалась быстрой и удобной.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию