2013-03-20 19 views
11

Podążanie za dokumentacją google do zmiany ikony znacznika było łatwe. Ale utknąłem, nie wiem jak zmienić obraz po kliknięciu markera?Google Maps API v3 zmienić ikonę znacznika na kliknięcie?

Mój kod do tej pory:

<script> 
    function initialize() { 

    var latlngPos = new google.maps.LatLng(<?php echo $event_google_map_coordinates; ?>); 

    var mapOptions = { 
     zoom: 16, 
     center: latlngPos, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 

    var map = new google.maps.Map(document.getElementById('googlemap_event'), 
     mapOptions); 

    var marker = new google.maps.Marker({ 
     position: latlngPos, 
     map: map, 
     //animation: google.maps.Animation.BOUNCE, 
     icon: '<?= get_bloginfo("template_url"); ?>/images/marker.png' 
    }); 

    var infowindow = new google.maps.InfoWindow({ 
     position: latlngPos, 
     maxWidth: 200, 
     content: "<h3><?php the_title(); ?></h3><?php if ($event_address_meta) {_e($event_address_meta);} ?>" 
    }); 

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

    //open infowindow onload 
    //infowindow.open(map); 

    } 

function loadScript() { 
    var script = document.createElement('script'); 
    script.type = 'text/javascript'; 
    script.src = 'http://maps.googleapis.com/maps/api/js?key=AIzaSyCK3XUMWOH0GIiuj3VeprakKZXoo_nDV08&sensor=false&' + 
    'callback=initialize'; 
    document.body.appendChild(script); 
} 

window.onload = loadScript; < /script> 
<div id="googlemap_event"></div> 
+0

Spójrz na metody setIcon z [google.maps.Marker] (https://developers.google.com/maps/documentation/javascript/reference#Marker) – geocodezip

Odpowiedz

28

Spróbuj tego.

//open onclick 
    google.maps.event.addListener(marker, 'click', function() { 
    marker.setIcon("Your Image");          
    infowindow.open(map); 
    }); 
+9

i jak mogę odzyskać ją po odtajnieniu? –

+1

Zapisz odniesienie do oryginalnej ikony (lub jeśli zawsze jest taka sama, po prostu ją cofnij). – geocodezip

+0

, aby powrócić do domyślnej ikony. try var icon = new GIcon(); marker.setIcon (ikona); –

8

Musisz ustawić ikonę znacznika w zdarzeniu kliknięcia.

google.maps.event.addListener(marker, 'click', function() { 
      infowindow.open(map); 
      //Change the marker icon 
      marker.setIcon('https://www.google.com/mapfiles/marker_green.png'); 
    }); 

Oto przykład: jsfiddle

0

Mam zmodyfikowany poprzedni skrzypce i włączona do odznaczyć znacznik.

http://jsfiddle.net/zsw76pq9/

google.maps.event.addListener(map,'click', function() { 
    infoWindow.close(); 

    //Change the marker icon 
    marker.setIcon('https://www.google.com/mapfiles/marker_black.png'); 
}); 
Powiązane problemy