Клуб API Карт

как найти ошибку

trackerdogru
21 марта 2011, 11:26

Добрый день,

разрабатываю проект, сейчас столкнулся с проблемой отладки, браузер ругается так:

Сообщение: Неожиданный вызов метода или обращение к свойству.

Строка: 11

Символ: 247640

Код: 0

URI-код: http://api-maps.yandex.ru/1.1.18/_YMaps.js?v=1

в этом файле нашел это место, оно выглядит так:
aV.appendChild(aT)};

у меня кусок кода, дающий ошибку такой:

                var geoPoint = new YMaps.GeoPoint(cords[2], cords[3]);

                var myCircle = new Circle2(geoPoint, 0.1,{

                    style : {

                        polygonStyle : {

                            outline : true,

                            strokeWidth : 3,

                            strokeColor : "0000ff55",

                            fillColor : "0000ff22"

                        }

                    },

                    interactive : YMaps.Interactivity.NONE

                });

                map.addOverlay(myCircle);

                map.setCenter(geoPoint, 15);

Добавлю еще, что ошибка только в IE8, в хроме ее нет.

Коллеги, дайте совет, как отладить такую ошибку? Спасибо.

4 комментария
Подписаться на комментарии к посту
Без кода класса Circle2 это трудно сделать :)

спасибо за ответ.

класс Circle2 взят полностью из примера (код рисования окружностей) на api.yandex.maps

 

вот он

 

 

    function extend (child, parent) {    var c = function () {};    c.prototype = parent.prototype;    c.prototype.constructor = parent;    return child.prototype = new c;    };    // Оверлей "Круг"    //    // center - географические координаты центра    // radius - радиус круга в км    // options.accuracy - количество граней многоугольника    function Circle2 (center, radius, options) {    this.center = center;    this.radius = radius;    this.options = YMaps.jQuery.extend({accuracy : 360}, options);    // Вызывает родительский конструктор    YMaps.Polygon.call(this, [], this.options);    // Вызывается при добавлении круга на карту    this.onAddToMap = function (map, container) {    this.map = map;    this.calculatePoints();    YMaps.Polygon.prototype.onAddToMap.call(this, map, container);    }    // Устанавливает новый центр и радиус    this.setCenter = function (newCenter, newRadius) {    if (this.map && (!this.center.equals(newCenter) || this.radius != newRadius)) {    this.center = newCenter;    this.radius = newRadius || this.radius;    this.calculatePoints();    }    }    // Вычисляет точки окружности    this.calculatePoints = function () {    // Откладываем геоточку от центра к северу на заданном расстоянии    var northPoint = new YMaps.GeoPoint(    this.center.getLng(),    this.center.getLat() + this.radius / 112.2    ),    // Пиксельные координаты на последнем масштабе    pixCenter = this.map.coordSystem.fromCoordPoint(this.center),    // Радиус круга в пикселях    pixRadius = pixCenter.getY() - this.map.coordSystem.fromCoordPoint(northPoint).getY(),    // Вершины многоугол    points = [],    // Вспомогательные переменные    twoPI = 2 * Math.PI,    delta = twoPI / this.options.accuracy;    for (var alpha = 0; alpha < twoPI; alpha += delta) {    points.push(    this.map.coordSystem.toCoordPoint(    new YMaps.Point(    Math.cos(alpha) * pixRadius + pixCenter.getX(),    Math.sin(alpha) * pixRadius + pixCenter.getY()    )    )    )    }    this.setPoints(points);    }    }    extend(Circle2, YMaps.Polygon);

 

У меня эта ошибка не воспроизводится.

Если ошибка только в IE - возможно, где-то лишняя запятая в объявлении массива?

Решили проблему?