Невозможно установить свойство 1 из неопределенных - API JavaScript / Google Maps - PullRequest
0 голосов
/ 07 марта 2012

Я пытаюсь создать массив значений, которые я могу использовать для добавления маркеров на карты Google, но продолжаю получать эту ошибку.Приведенный ниже код, любые предложения о том, где я ошибаюсь (довольно плохо знакомы с этим ...), очень ценятся.

Спасибо, Пол

      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);
  }

1 Ответ

0 голосов
/ 07 марта 2012

в настоящее время у вас есть только 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([]);
        }

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