JSFiddle - React, Tailwind, and code Playground
HTML
<div id="map"></div>
CSS
</style>
<script type="text/javascript" src="https://yandex.st/jquery/1.9.0/jquery.min.js"></script>
<script type="text/javascript" src="https://api-maps.yandex.ru/2.1.18/?lang=ru_RU&mode=debug"></script>
<style>
html, body { margin: 0; padding: 0; }
html, body, #map { width: 100%; height: 100%; }
.list { list-style: none outside; margin: 0; padding: 0;}
.list li { padding-bottom: 10px; }
.list a { color: #207697; }
.list a:hover { color: #28B8F0; text-decoration: none; }
JavaScript
ymaps.ready(function () {
var mapCenter = [55.755381, 37.619044],
map = new ymaps.Map('map', {
center: mapCenter,
zoom: 10,
controls: []
}),
placemarks = [];
// Создаем собственный макет с информацией о выбранном геообъекте.
var customBalloonContentLayout = ymaps.templateLayoutFactory.createClass('{{properties.balloonContent}}');
var objectManager = new ymaps.ObjectManager({
clusterize: true,
clusterDisableClickZoom: true,
clusterOpenBalloonOnClick: false,
// Устанавливаем режим открытия балуна.
// В данном примере балун никогда не будет открываться в режиме панели.
clusterBalloonPanelMaxMapArea: 0,
// По умолчанию опции балуна balloonMaxWidth и balloonMaxHeight не установлены для кластеризатора,
// так как все стандартные макеты имеют определенные размеры.
clusterBalloonMaxHeight: 200,
// Устанавливаем собственный макет контента балуна.
clusterBalloonContentLayout: customBalloonContentLayout
});
// Заполняем кластер геообъектами со случайными позициями.
for (var i = 0, l = 100; i < l; i++) {
var placemark = {
type: 'Feature',
id: i,
geometry: {
type: 'Point',
coordinates: getRandomPosition()
}
};
placemarks.push(placemark);
}
objectManager.add(placemarks);
map.geoObjects.add(objectManager);
function getRandomPosition () {
return [
mapCenter[0] + (Math.random() * 0.3 - 0.15),
mapCenter[1] + (Math.random() * 0.5 - 0.25)
];
}
// Функция, эмулирующая запрос за данными на сервер.
function...