【问题标题】:Cannot set property 1 of undefined - javascript/google maps api无法设置未定义的属性 1 - javascript/google maps api
【发布时间】:2012-03-07 11:14:00
【问题描述】:

我正在尝试构建一个值数组,可用于向谷歌地图添加标记,但不断收到此错误。下面的代码,任何关于我哪里出错的建议(对此非常新......)非常感谢。

谢谢 保罗

      var result2 = sforce.connection.queryAll("select Name,Lat__c,Long__c, Status__c from Site__c where Lat__c != null");

  var records = result2.getArray('records');
  var store_locations = new Array();
  var Approved_store_locations = new Array();
  var Rejected_store_locations = new Array();
  var a=0,b=0,c=0;

  for (var j=0; j< records.length; j++) 
      {
        var record = records[j];

        if (record.Status__c == "IB Approved")
        {

            Approved_store_locations[a][1] = [[new google.maps.LatLng(record.Lat__c, record.Long__c)],[record.Name]];
            alert(Approved_store_locations[a][1]);
            a++ 
        } else if (record.Status__c == "Site Dead")
        {

            Rejected_store_locations[b][1] = [[new google.maps.LatLng(record.Lat__c, record.Long__c)],[record.Name]]; 
            b++
        } else
        {

            store_locations[c][1] = [[new google.maps.LatLng(record.Lat__c, record.Long__c)],[record.Name]]; 
            c++
        }

      }

  map = new google.maps.Map(document.getElementById("map"), myOptions);
  for (i=0; i < store_locations.length; i++)
  {
    marker2 = new google.maps.Marker(
    {
        position: store_locations[i][0],
        title: store_locations[0][i],
        map: map
    });
    iconfile = 'http://maps.google.com/mapfiles/ms/icons/yellow-dot.png';
    marker2.setIcon(iconfile);
  }

  for (i=0; i < Approved_store_locations.length; i++)
  {
    marker3 = new google.maps.Marker(
    {
        position: Approved_store_locations[i][0],
        title: store_locations[0][i],
        map: map
    });
    iconfile = 'http://maps.google.com/mapfiles/ms/icons/green-dot.png';
    marker3.setIcon(iconfile);
  }


  for (i=0; i < Rejected_store_locations.length; i++)
  {
    marker = new google.maps.Marker(
    {
        position: Rejected_store_locations[i][0],
        title: store_locations[0][i],
        map: map
    });
    iconfile = 'http://maps.google.com/mapfiles/ms/icons/red-dot.png';
    marker3.setIcon(iconfile);
  }

【问题讨论】:

  • 这个错误出现在代码的什么地方?请提供更多信息。我也可以在最后一个循环中看到超出范围的 marker3 对象
  • 在这一行:store_locations[c][1] = [[new google.maps.LatLng(record.Lat__c, record.Long__c)],[record.Name]];

标签: javascript google-maps-api-3


【解决方案1】:

目前你只有store_locations=Array();,里面没有物品。

在您尝试访问某个项目之前,您必须先创建它,例如:

  var store_locations = [[]];
  var Approved_store_locations =  [[]];
  var Rejected_store_locations =  [[]];
  var a=0,b=0,c=0;

  for (var j=0; j< records.length; j++) 
      {
        var record = records[j];

        if (record.Status__c == "IB Approved")
        {

            Approved_store_locations[a][1] = [[new google.maps.LatLng(record.Lat__c, record.Long__c)],[record.Name]];
            alert(Approved_store_locations[a][1]);
            a++;Approved_store_locations.push([]);

        } else if (record.Status__c == "Site Dead")
        {

            Rejected_store_locations[b][1] = [[new google.maps.LatLng(record.Lat__c, record.Long__c)],[record.Name]]; 
            b++;Rejected_store_locations.push([])
        } else
        {

            store_locations[c][1] = [[new google.maps.LatLng(record.Lat__c, record.Long__c)],[record.Name]]; 
            c++;store_locations.push([]);
        }

      }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-12
    • 2011-11-20
    • 1970-01-01
    • 1970-01-01
    • 2022-06-18
    相关资源
    最近更新 更多