Javascript: TypeError: не определено - что не так? - PullRequest
2 голосов
/ 23 февраля 2010

У меня есть массив, содержащий несколько маркеров для моей карты Google. Когда я пытаюсь добавить этот массив на карту, я получаю эту ошибку. Есть идеи почему?

Вот мой код:

    markers = [];
    function create_station_marker(position){
          if(position != null){
            eval(position);
            var latitude = parseFloat(position.latitude);
            var longitude = parseFloat(position.longitude);

            var new_icon = new GIcon();
            new_icon.image = "marker.png";
            new_icon.size = new GSize(25,17);
            var opt;
            opt = {};
            opt.icon = new_icon;

            var marker = new GMarker(new GLatLng(latitude, longitude),opt);
            markers.push(marker);
        }
    }

И вот где я добавляю свой массив на карту:

    function load_googlemap() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(48.092757,11.645508), 4);
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());


        for (var i=0; i< markers.length; i++ ) {
            try{
                map.addOverlay(markers[i]);
                alert(markers[i].toSource());

            }catch(ex){
                //here I get this error!!!
                alert(ex);
            }
        }
    }
}

Есть идеи по этому поводу?

Ответы [ 2 ]

1 голос
/ 02 мая 2013

Если position - это строка, содержащая представление данных в формате JSON, вам придется присвоить результат eval() другой переменной, например:

if(position != null){
    position = eval(position);
    // ...

Вы должны, однако, разобрать его правильно:

if(position != null){
    position = JSON.parse(position);
0 голосов
/ 21 апреля 2012

я бы проверил содержимое параметра "position", если у вас есть eval, это может быть источником ошибки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...