Клуб API Карт

Ошибки при создании геообъектов

i.tugerin
28 марта 2015, 19:27
При создании рандомных 100 placemark и 50 polyline в console log Google Chrome сыпется следующее:

combine.xml?modules=QuQv0a0-0*0b1n1a1o1b1c1d1p1e1r1g1h1i1k1l1v1m1x1_0c2k2l2m2n2o0e2D2E2F2G2H2C2K0d2…:516 Uncaught TypeError: Cannot read property '1' of undefined

combine.xml?modules=QuQv0a0-0*0b1n1a1o1b1c1d1p1e1r1g1h1i1k1l1v1m1x1_0c2k2l2m2n2o0e2D2E2F2G2H2C2K0d2…:212 Uncaught TypeError: Cannot read property 'getBounds' of undefined

combine.xml?modules=QuQv0a0-0*0b1n1a1o1b1c1d1p1e1r1g1h1i1k1l1v1m1x1_0c2k2l2m2n2o0e2D2E2F2G2H2C2K0d2…:215 Uncaught TypeError: Cannot read property 'destroy' of undefined


function cr_graph() {
        //Очищаем карту от геообъектов и добавляем метки
        map.geoObjects.removeAll();
        for (var i = 0; i < 100; i++) {
            var center = map.getCenter();
            center = [55.758 +(Math.random() * 2)/500,37.63 +(Math.random() * 2)/100];
            center = {
                coords: center,
                get: function(e) { return this.coords; }
            };
            cr_point(center);   
        }
        var crd = [];
        //Обходим метки и добавляем между ними случайные линии
        map.geoObjects.each(function (el) {
            if (el.geometry.getType() == "Point") {
                crd.push(el.geometry.getCoordinates());
            }
        });
        function rand_el(crd) { return crd[Math.floor(Math.random() * (100 - 0 + 1)) + 0];  }
        for (var i = 0; i < 50; i++) {
            cr_line([rand_el(crd),rand_el(crd)]);
        }       
    }
3 комментария
Подписаться на комментарии к посту

Скорее всего ошибка в вашей логике, но по приведенному коду этого сказать нельзя

На самом деле все отрабатывает несколько  (как повезет) первых раз замечательно, ошибки начинают сыпаться при повторной генерации геообъектов.
У вас rand_el генерирует индексы от 0 до 100 вместо 99.