2011-11-29 3 views
1

Je voudrais imprimer une carte google, une fois la carte complètement chargée.addListener pour Google Maps

[..]

<link href="http://code.google.com/apis/maps/documentation/javascript/examples/standard.css" rel="stylesheet" type="text/css" /> 
<script type="text/javascript" src="http://maps.google.de/maps/api/js?sensor=false"> 
</script> 
<script type="text/javascript"> 

var directionsService = new google.maps.DirectionsService(); 
var map; 
var gh; 


function initialize() { 
    //alert("Starte Funktion"); 
    directionsDisplay = new google.maps.DirectionsRenderer(); 
    gh = new google.maps.LatLng(41.850033, -7.6500523); 
    var myOptions = { 
     zoom:15, 
     mapTypeId: google.maps.MapTypeId.ROADMAP, 
     center: gh 
    } 
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
    directionsDisplay.setMap(map); 

} 

function calcRoute() { 
    //alert("Starte calcRoute"); 
    //alert("<?php echo $adresse; ?>"); 
    var start = "Recklinghausen Akkoallee 45"; 
    var end = "Recklinghausen <?php echo $adresse; ?>"; 
    var request = { 
     origin:start, 
     destination:end, 
     travelMode: google.maps.DirectionsTravelMode.DRIVING, 
     avoidHighways: true, 
    }; 
    directionsService.route(request, function(result, status) { 
     if (status == google.maps.DirectionsStatus.OK) { 
      directionsDisplay.setDirections(result); 
     } 
    }); 

    google.maps.event.addListenerOnce(map,'idle', function(){ 
     alert('Funktion wird aufgerufen!'); 
     //window.print(); 
    }); 
} 
</script> 

[..]

<body onload="initialize();calcRoute();"> 

Mais les addListener incendies les informations lorsque la carte est démarré et pas complètement chargée? Essayez d'utiliser une fonction setTimeout pour retarder l'appel de l'impression.

+0

C'est le meilleur que je pouvais faire: [l'objet Carte feux soi-disant un 'tilesloaded' événement] (http://code.google.com/apis/maps/documentation/javascript/reference.html#Map), mais quand j'ai changé votre 'addListenerOnce' en" tilesloaded "au lieu de" idle ", j'ai quand même eu la boîte d'alerte avant que les images ne soient apparues. Bonne chance. – sdleihssirhc

Répondre

-1

directionsService.route(request, function(result, status) { 
     if (status == google.maps.DirectionsStatus.OK) { 
      directionsDisplay.setDirections(result); 
      setTimeout(function() { alert('Funktion wird aufgerufen!'); }, 2000); 
     } 
    });