2013-03-20 43 views
11

Làm theo tài liệu google để thay đổi biểu tượng điểm đánh dấu là dễ dàng. Nhưng tôi bị mắc kẹt, tôi không biết làm thế nào để thay đổi hình ảnh khi đánh dấu được nhấp?Biểu tượng điểm đánh dấu thay đổi API bản đồ google v3 khi nhấp chuột?

Mã của tôi cho đến nay:

<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

Nhìn vào phương pháp setIcon của [google.maps.Marker] (https://developers.google.com/maps/documentation/javascript/reference#Marker) – geocodezip

Trả lời

28

Hãy thử điều này.

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

Và làm cách nào để làm cho nó trở lại ngày bỏ chọn? –

+1

Lưu tham chiếu đến biểu tượng gốc (hoặc nếu nó luôn giống nhau, chỉ cần đặt lại). – geocodezip

+0

để quay lại biểu tượng mặc định. thử var icon = new GIcon(); marker.setIcon (biểu tượng); –

8

Bạn cần đặt biểu tượng điểm đánh dấu trong sự kiện nhấp chuột.

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

Dưới đây là một ví dụ: jsfiddle

0

tôi đã sửa đổi fiddle trước và kích hoạt để bỏ chọn đánh dấu.

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'); 
}); 
Các vấn đề liên quan