0

現在マーカーを作成していますが、それらのマーカー名の別のリストをクリックすると、マーカーの情報ウィンドウにフォーカス/表示できるようにしたいと考えています。これをどのように達成しますか?オンラインで何も見つかりませんでした。

JavaScript:

<script type="text/javascript"> 
  var infowindow;
  var locations = { 0: { lat: 32.42, long: -99.68,  name: 'Taylor Swift', info: '<b>Taylor Swift</b><br/><img src="http://www.8notes.com/images/artists/taylor_swift.jpg" width="50">' }, 
                    1: { lat: 35.42, long: -95.68,  name: 'Lady Gaga', info: '<b>Lady Gaga</b><br/><img src="http://images2.fanpop.com/images/photos/7500000/L-G-lady-gaga-7557892-500-500.jpg" width="50">' },
                    2: { lat: 37.78, long: -122.32, name: 'Selena Gomez', info: '<b>Selena Gomez</b><br/><img src="http://videokeman.com/image/pics/SelenaGomezsongPics1YnhHMtsn4mUdCM.jpg" width="50">' }  
                  }                       

  var myLatlng = new google.maps.LatLng(locations[0].lat,locations[0].long);
  var myOptions = 
  {
    zoom: 4,
    center: myLatlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  }

   var map = new google.maps.Map(document.getElementById("map_container"), myOptions);
   var markerBounds = new google.maps.LatLngBounds();

   $.each(locations, function(key, value) 
   {          
        var location  = new google.maps.LatLng(value.lat,value.long);
      var marker = new google.maps.Marker({
         position: location, 
         map: map,         
         title:value.name        
      });    

      markerBounds.extend(location);
      map.fitBounds(markerBounds);                          
      attachSecretMessage(marker, value);
   });

function attachSecretMessage(marker,value) 
{         
   google.maps.event.addListener(marker, 'click', function() 
   {      
        if (infowindow) infowindow.close();
      infowindow = new google.maps.InfoWindow(
       { content: value.info,
         size: new google.maps.Size(50,50)
       });     

      infowindow.open(map,marker);
   });    
}  

  </script>

html 本文:

<body>

<a id="showTaylorSwiftInfoWindow" href="#">Taylor Swift</a>
<a id="showLadyGagaInfoWindow" href="#">Lady Gaga</a>
<a id="showSelenaGomezInfoWindow" href="#">Selena Gomez</a>

</body>
4

1 に答える 1

1

すべてのマーカーを配列に保持して、それを検索して適切なマーカーを見つけることができるようにする必要があります。それができたら、クリック イベント ハンドラーを呼び出すか、イベント ハンドラーで行うように情報ウィンドウを作成して開くことができます。

ただし、重要な部分は、マーカーを配列に保持することです。これは、マーカーが作成された後にそれらを再度参照できる唯一の方法だからです。

于 2012-11-09T08:33:57.877 に答える