Javascript:TypeError:a未定义 - 出了什么问题?

时间:2010-02-23 09:14:01

标签: javascript google-maps

我有一个数组,其中包含我的googlemap的几个标记。 当我尝试将此数组添加到我的地图时,我收到此错误。有什么想法吗?

这是我的代码:

    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 个答案:

答案 0 :(得分:1)

如果position是包含数据的JSON表示的字符串,则必须将eval()的结果分配给另一个变量,例如:

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

但是,您应该正确解析它:

if(position != null){
    position = JSON.parse(position);

答案 1 :(得分:0)

我会检查“位置”参数内容一旦你对它有一个评估,它可能是错误的来源