JSFiddle - React, Tailwind, and code Playground

HTML

<script src="http://api-maps.yandex.ru/2.1/?lang=ru_RU"></script>
<h2>Выделение группы меток прямоугольником. Щелкните по карте для создания зоны. Щелкните повторно для окончания выделения</h2>

<div id="map" style="width:600px;height:400px"></div>

JavaScript

// Как только будет загружен API и готов DOM, выполняем инициализацию
        ymaps.ready(init);

        function init () {
            var myMap = new ymaps.Map("map", {
                    center: [55.76, 37.64],
                    zoom: 10
                }),
                // Получаем границы области показа карты: координаты левого верхнего и правого нихнего углов
                bounds = myMap.getBounds(),
                myCollection = new ymaps.GeoObjectCollection(), // коллекция для всех меток
                SelCollection = new ymaps.GeoObjectCollection(); // коллекция для выделенных меток

            // Функция, генерирующая координаты метки случайным образом
            function getRandomCoordinates (maxLatitude, minLatitude, maxLongitude, minLongitude) {
                return [Math.random() * (maxLatitude - minLatitude) + minLatitude, Math.random() * (maxLongitude - minLongitude) + minLongitude];
            }

            // Создаём метки в видимой области карты (50 штук),
            // и добавляем в общую коллекцию
            for (var i = 0, l = 50; i < l; i++) {
                var point = getRandomCoordinates(bounds[0][0], bounds[1][0], bounds[0][1], bounds[1][1]),
                    myPlacemark = new ymaps.Placemark(point, {
                        // Свойства.
                        // Текст метки.
                        iconContent: i + 1
                    }, {
                        preset: "twirl#blueIcon"
                    });
                // Добавляем метку в коллекцию
                myCollection.add(myPlacemark);
            }

            // Добавляем коллекции на карту
            myMap.geoObjects.add(myCollection);
            myMap.geoObjects.add(SelCollection);
            SelectionBox= new ymaps.Rectangle([[55.76, 37.64],[55.76, 37.64]]); // готовим выделяющий прямоугольник, но пока не показываем
            SelectionBox.options.set({"strokeColor":"#0000ff", "fillColor":"#0000ff", "fillOpacity":0.2,...