web-dev-qa-db-fra.com

erreur google.maps.geometry.spherical

J'ai des problèmes pour utiliser la géométrie sur google maps. Je reçois le message d'erreur suivant: "Impossible d'obtenir la propriété 'sphérique' de référence non définie ou nulle."

Ceci est un code de W3C avec quelques ajouts.

var x=new google.maps.LatLng(52.395715,4.888916);
var stavanger=new google.maps.LatLng(58.983991,5.734863);
var amsterdam=new google.maps.LatLng(52.395715,4.888916);
var london=new google.maps.LatLng(51.508742,-0.120850);
function initialize()
{
var mapProp = {
  center:x,
  zoom:4,
  mapTypeId:google.maps.MapTypeId.ROADMAP
};

var map=new google.maps.Map(document.getElementById("googleMap"),mapProp);
var myTrip=[stavanger,amsterdam,london];
var flightPath=new google.maps.Polyline({
    path:myTrip,
    strokeColor:"#0000FF",
    strokeOpacity:0.8,
    strokeWeight:2
    });
flightPath.setMap(map);

try{
    var markerpos = google.maps.geometry.spherical.interpolate(flightPath.getAt(0), flightPath.getAt(1), .5);
    // also tried //
    //var Spherical = google.maps.geometry.spherical;
    //var markerpos = Spherical.interpolate(flightPath.getAt(0), flightPath.getAt(1), .5);
    //var markerpos = google.maps.geometry.spherical.interpolate(amsterdam, london, .5);
}
catch(ex){alert(ex);}

var marker = new google.maps.Marker({position: markerpos,
    map: map,  clickable: false
});
}

Quel est le problème avec le code ci-dessus?

20
Reven

Chargez-vous la bibliothèque correcte avec le paramètre libraries=?

<script src="https://maps.googleapis.com/maps/api/js?v=3&sensor=false&libraries=geometry"></script>
68
Marcelo

Vous devez d’abord importer les modules de bibliothèque, puis le module de clé d’authentification. Je pense que le problème est qu’au moment de l’exécution des fonctions de la bibliothèque, l’importation des modules de bibliothèque n’est pas terminé. Si vous importez d’abord le module de clé d’auth ce qui est arrivé, c'est que la méthode initialize () a été immédiatement appelée. Le chargement des modules de la bibliothèque n'est pas terminé. Vous devez donc d'abord importer les modules de la bibliothèque, puis le module auth.

0
Tarak