2012-04-09 10 views
0

einen Wert zuweisen Ich versuche, ein Array zu einem Marker in der Javascript-Funktion unten zuzuweisen. Es funktioniert nicht mit Push oder mit der auskommentierten Anweisung. Ich bin mir nicht sicher, ob ein Kartenmarker ein Array haben darf. Die marker.mycategory funktioniert gut, nur das Array funktioniert nicht.Wie man dem Google map marker Array in Javascript

function createMarker(latlng, name, html, category, animals) 
    { 

     var markerImg = setMarker(category); 

     var contentString = html; 

     var marker = new google.maps.Marker({ 
      position: latlng, 
      map: map, 
      title: name, 
      icon: markerImg, 
      }); 

     for (var i = 0; i < animals.length; i++) 
      marker.myanimals.push(animals[i]); 
      //marker.myanimals[i] = animals[i]; 

     marker.mycategory = category;         
     marker.myname = name; 

     gmarkers.push(marker); 

     google.maps.event.addListener(marker, 'click', function() { 
      infowindow.setContent(contentString); 
      infowindow.open(map,marker); 
      }); 

    } // end createMarker() 

Danke für jede Hilfe zu diesem Thema.

Antwort

0

fügen Sie ein marker.myanimals = []; vor Ihrer for-Schleife, als es funktionieren sollte

+0

Danke, das ist es. – Tonya

1

google.maps.Marker erstreckt google.maps.MVCObject, so dass es gut sein wird, dass Sie die Methoden der MVCObject verwenden.

Statt:

for (var i = 0; i < animals.length; i++) 
     marker.myanimals.push(animals[i]); 
     //marker.myanimals[i] = animals[i]; 

    marker.mycategory = category;         
    marker.myname = name; 

Verwendung:

marker.setValues({ 
    mycategory : category, 
    myname : name, 
    myanimals : JSON.parse(JSON.stringify(animals)) //Deep copy of 'animals' array 
}); 

Und Eigenschaft zuzugreifen, verwenden get Verfahren (z marker.get('mycategory')).