не отрабатывает скрипт если на яндекс карте несколько полигонов

Пожалуйста помогите разобраться с вопросом.на базе исходников яндекс карт апи 2.1 был написан скрипт по которому создается на карте несколько полигонов.Вопрос в следующем- создаю первый полигон - передвигаю его к геометкам - те по скрипту отрабатывают и окрашиваются красным.Создаю второй полигон передвигаю его - от начинает отрабатывать правильно(метки при помещении в полигон окрашиваются красным).Но первый созданный полигон сколько не двигай метки на него больше не реагируют.В JS очень слаб.Очень прошу хотя бы кивните в какую сторону копать.

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Пример рисования многоугольника с выводом координат - API Яндекс.Карт v 2.x</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
      <script src="https://api-maps.yandex.ru/2.1/?load=package.full&lang=ru-RU" type="text/javascript"></script>
    <script src="js/jquery-3.1.1.js" type="text/javascript"></script>
    <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css" />
    <script type="text/javascript">

ymaps.ready(init);  
var polygon;
var a=1;
function init(){
    var myMap = new ymaps.Map("map",{
        center:[58.603553, 49.667017],
        zoom:11
    });
    
     objects = ymaps.geoQuery([
            {
                type: 'Point',
                coordinates: [58.593565566, 49.672739]
            },
            {
                type: 'Point',
                coordinates: [58.586715796, 49.67462174]
            }
        ]).addToMap(myMap);


    //Функционал добавления полигонов
$('#addEditPolyline').on('click',function(){
    polygon = new ymaps.GeoObject({
    geometry:{
        type: "Polygon",
        coordinates:[[[ 58.5739, 49.7891 ], [ 58.5199, 49.7070 ], [ 58.5186, 49.8255 ], [ 58.5739, 49.7891 ]]]
    },
    
    properties: {
    balloonContentHeader: 'Название полигона №'+a++,
    balloonContentBody: 'Описание',      
    hintContent:'плавающая подсказка: ',
               }
    },{draggable: true});
    
    
    polygon.events.add('geometrychange', function () {
        // Объекты, попадающие в полигон, будут становиться красными.
      var objectsInsidepolygon = objects.searchInside(polygon);
        objectsInsidepolygon.setOptions('preset', 'islands#redIcon');
        // Оставшиеся объекты - синими.
        objects.remove(objectsInsidepolygon).setOptions('preset', 'islands#blueIcon');
    });

  

    myMap.geoObjects.add(polygon);
    polygon.editor.startDrawing();


});
    //
    //Прослушиваем нажатие кнопки расчитать координаты
$('#stopEditPolyline').on('click',function(){
    $('#datacoord').empty();
myMap.geoObjects.each(function(obj,objIndex){
printGeometry(obj.geometry.getCoordinates()[0],objIndex);
});

});
    ///


}
//функция прорисовки координат
function printGeometry(coords,index){
    var addcoord='Полигон: <b>'+index+'</b>' +stringify(coords)+'<br>';
    $('#datacoord').append(addcoord); 

    function stringify(coords){
        var res='';
        if ($.isArray(coords)){
            res ='[ ';
                    for (var i=0, l= coords.length; i < l; i++) {
            if (i>0){
                res+=', ';
            }
            res+=stringify(coords[i]);
        }
        res+=' ]';
        } else if(typeof coords=='number'){
            res =coords.toPrecision(6);
        }else if (coords.toString){
            res=coords.toString();

        }
return res;

    }

}
//




</script>

</head>
<body>




<div id="map" style="width: 1024px; height: 720px"></div>
<input type="button" value="Добавить полигон" id="addEditPolyline" >
<input type="button" value="Получит координаты" id="stopEditPolyline">
<div id="geometry">Координаты:</div><span id="datacoord"></span>
</body>
</html>```

Ответы (1 шт):

Автор решения: Roman

плюнул на разбирательство,создал 10 полигонов и на каждый полигон повесил по своему обработчику задав доступ по названию переменной образец кода

    //создание полигона №100 (создание идет десятками сверху вниз.)цвет зеленый 
myPolygon = new ymaps.GeoObject({
    geometry:{type: "Polygon",coordinates:[[[ 58.6645, 50.2515 ], [ 58.6659, 50.4231 ], [ 58.5714, 50.4273 ], [ 58.5707, 50.2584 ], [ 58.6645, 50.2515 ]]]},
    properties: {hintContent:'Участок №100'}
    },{editorDrawingCursor:"crosshair",fillColor: '#00FF00',opacity: 0.4,draggable: true});

    
    myMap.geoObjects.add(myPolygon);
    myPolygon.editor.startDrawing();

    myPolygon.events.add('geometrychange', function () {
        
      var objectsInsidemyPolygon = objects.searchInside(myPolygon);
     objectsInsidemyPolygon.setOptions('preset', 'islands#redIcon');
     let out_arr = document.getElementById('out_arr');
     out_arr.innerHTML = objectsInsidemyPolygon;
     document.getElementById("col").innerHTML 
      = objectsInsidemyPolygon.getLength();
    
     let str = ' ';
     for (let i = 0; i < objectsInsidemyPolygon.getLength(); i++) {
     str +=objectsInsidemyPolygon.get(i).properties.get('balloonContent')+'<br>';
     }
     out_arr.innerHTML = str;
        
       objects.remove(objectsInsidemyPolygon).setOptions('preset', 'islands#blueIcon');
   });
//создание полигона №90 (создание идет десятками сверху вниз.)цвет голубоватый   
 myPolygon2 = new ymaps.GeoObject({
    geometry:{type: "Polygon",coordinates:[[[ 58.6645, 50.2515 ], [ 58.6659, 50.4231 ], [ 58.5714, 50.4273 ], [ 58.5707, 50.2584 ], [ 58.6645, 50.2515 ]]]},
    properties: {hintContent:'Участок №90'}
    },{editorDrawingCursor:"crosshair",fillColor: '#00FFFF',opacity: 0.4,draggable: true});

    
    myMap.geoObjects.add(myPolygon2);
    myPolygon2.editor.startDrawing();

    myPolygon2.events.add('geometrychange', function () {
        
      var objectsInsidemyPolygon2 = objects.searchInside(myPolygon2);
     objectsInsidemyPolygon2.setOptions('preset', 'islands#redIcon');
     let out_arr = document.getElementById('out_arr');
     out_arr.innerHTML = objectsInsidemyPolygon2;
     document.getElementById("col").innerHTML 
      = objectsInsidemyPolygon2.getLength();
    
     let str = ' ';
     for (let i = 0; i < objectsInsidemyPolygon2.getLength(); i++) {
     str +=objectsInsidemyPolygon2.get(i).properties.get('balloonContent')+'<br>';
     }
     out_arr.innerHTML = str;
        
       objects.remove(objectsInsidemyPolygon2).setOptions('preset', 'islands#blueIcon');
   });
→ Ссылка