Google Maps v3 - Uncaught TypeError: Cannot read property 'Marqueur' undefined

J'ai ma carte div conteneur toujours sur la page:

<div id="map_canvas"></div>

au début, j'essayais d'ajouter ce pour les DOM dans l'ajax de rappel aswell mais a avoir des ennuis donc décidé de la rendre statique pour l'instant.

Je suis en train d'initialiser la carte de jquery ajax rappel

...
complete: function(data) {
    //build the map
    $.getScript("http://maps.google.com/maps/api/js?v=3&libraries=geometry&sensor=false&region=uk&async=2&callback=MapApiLoaded", function () {});     
    running = false;

    if(running) return false;
    running = true;
    setMarkers();
    flightPath.setMap(null); //Remove polyline
    flightPathProgress.setMap(null); //Remove polyline

    setTimeout(function() {
        flightPath.setMap(map);
        flightPathProgress.setMap(map);
        flightPathProgress.setOptions({
            strokeOpacity: 0
    });

    var progress = 0;
    var intvl = setInterval(function(){
        progress += 0.01;
        if(progress > 1) { 
            clearInterval(intvl);
            running = false;
         } else {

         }

         //Calc progress
         var progressLatLng = google.maps.geometry.spherical.interpolate(userlatlng, serverlatlng, progress);
         //Update polyline
         flightPathProgress.setOptions({
             strokeOpacity: progress,
             path: [userlatlng, progressLatLng]
         });
     }, 50);
     }, 1000);
 }

J'ai aussi le suivant, en dehors du document prêt de la fonction

var map;
var serverlatlng;
var userlatlng;
var servermarker;
var usermarker;
var flightPath;
var flightPathProgress;
var running;
function MapApiLoaded() {
serverlatlng = new google.maps.LatLng(34.0625, -118.123);
userlatlng = new google.maps.LatLng(54.167, -4.48211);
var centerlatlng = new google.maps.LatLng(44.0835, -61.241055);
//Create the map
var myOptions = {
center: centerlatlng,
mapTypeId: google.maps.MapTypeId.TERRAIN,
panControl: false,
zoomControl: false,
streetViewControl: false,
mapTypeControl: false
};
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
//Centre map on user and server locations
var bounds = new google.maps.LatLngBounds();
bounds.extend(serverlatlng);
bounds.extend(userlatlng);
map.fitBounds(bounds);
//The grey outline path
flightPath = new google.maps.Polyline({
path: [userlatlng,serverlatlng],
strokeColor: "#666",
strokeOpacity: 0.5,
strokeWeight: 4,
geodesic: true,
zIndex: 1
});
//The red progress path
flightPathProgress = new google.maps.Polyline({
path: [userlatlng,userlatlng],
strokeColor: "#ff0000",
strokeOpacity: 0,
strokeWeight: 4,
geodesic: true,
zIndex: 2
});
}
function setMarkers() {
if(servermarker != undefined) servermarker.setMap(null); //Remove marker if exists
servermarker = new google.maps.Marker({
position: serverlatlng, 
map: map, 
title:"Server",
animation: google.maps.Animation.DROP,
icon: 'images/marker.png'
});  
if(usermarker != undefined) usermarker.setMap(null); //Remove marker if exists
usermarker = new google.maps.Marker({
position: userlatlng, 
map: map, 
title:"User",
animation: google.maps.Animation.DROP,
icon: 'images/marker.png'
}); 
}

Le message d'erreur que j'obtiens est Uncaught TypeError: Cannot read property 'Marker' of undefined.

La pleine étendue message est

Uncaught TypeError: Cannot read property 'Marker' of undefined     
www.domain.co.uk/:345
setMarkers www.domain.co.uk/:345
$.ajax.complete www.domain.co.uk/:242
fire jquery.js:3064
self.fireWith jquery.js:3176
done jquery.js:8259

callback`