2012-08-14 11 views
5

mam to zmodyfikowany przykład kod z googleGoogle Maps API v3 marker drop i odbić animacja

var stockholm = new google.maps.LatLng(59.32522, 18.07002); 
var parliament = new google.maps.LatLng(59.327383, 18.06747); 
var marker; 
var map; 

function initialize() { 
    var mapOptions = { 
     zoom: 15, 
     mapTypeId: google.maps.MapTypeId.ROADMAP, 
     center: stockholm 
    }; 

    map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions); 

    marker = new google.maps.Marker({ 
     map:map, 
     draggable:true, 
     animation: google.maps.Animation.DROP, 
     position: parliament, 
     icon: '/img/marker.png' 
    }); 
    google.maps.event.addListener(marker, 'click', toggleBounce); 


    setTimeout(function() { marker.setAnimation(google.maps.Animation.BOUNCE); }, 2000); 

} 

function toggleBounce() { 

    if (marker.getAnimation() != null) { 
    marker.setAnimation(null); 
    } else { 
    marker.setAnimation(google.maps.Animation.BOUNCE); 
    } 
} 

i zastanawiam się, czy jest możliwe, aby zmienić animację markera z DROP odbijać po zatrzymaniu animacji DROP?

Udało mi się to zmienić za pomocą funkcji setTimeout(), ale nie robi się to płynnie. Każda pomoc zostanie doceniona.

Odpowiedz

0

Możesz spróbować. :

google.maps.event.addListener(marker, "dragend", function(event) { 
      marker.setAnimation(google.maps.Animation.BOUNCE); 
     }); 
+1

sprawdzone i to nie działa. – debianek

6

Spróbuj zmienić animację markera na google.maps.event.addListener(map, 'idle', function()...) - to zostanie wywołana po marker (y) są dodawane.

document.write('<script src="https://maps.googleapis.com/maps/api/js">\x3C/script>'); 
 

 
window.onload = function() { 
 
    // Create map 
 
    var map = new google.maps.Map(document.getElementById('map_canvas'), { 
 
     zoom: 12, 
 
     center: new google.maps.LatLng(-33.87, 151.24), 
 
     mapTypeControlOptions: { 
 
      mapTypeIds: [google.maps.MapTypeId.ROADMAP, 'map_style'] 
 
     } 
 
    }); 
 

 
    // Create marker 
 
    var marker = new google.maps.Marker({ 
 
     position: new google.maps.LatLng(-33.890542, 151.274856), 
 
     map: map, 
 
     animation: google.maps.Animation.DROP, 
 
     title: 'Bondi Beach' 
 
    }); 
 
    
 
    // On idle, change marker animation to bounce 
 
    google.maps.event.addListener(map, 'idle', function() { 
 
     marker.setAnimation(google.maps.Animation.BOUNCE); 
 
    }); 
 
}
#map_canvas { 
 
    width: 300px; 
 
    height: 300px; 
 
}
<div id="map_canvas"></div>

Powiązane problemy