2012-04-09 33 views
0

以下のjavascript関数のマーカーに配列を割り当てようとしています。プッシュでも、コメント付きのステートメントでも動作しません。マップマーカーに配列があるかどうかはわかりません。 marker.mycategoryは正常に動作しますが、動作しないのは配列だけです。javascriptのGoogleマップマーカー配列に値を割り当てる方法

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() 

ありがとうございました。それはそれはあなたがMVCObjectの方法を使用することを、良いだろうので

答えて

0

は、あなたのforループの前にmarker.myanimals = [];を追加します。

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

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

使用:代わりの

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

そして、プロパティにアクセスget方法(例えばmarker.get('mycategory'))を使用します。

+0

ありがとうございました。 – Tonya

関連する問題