2 votes

Le module Bing Maps v7 ne se charge pas

J'essaie d'utiliser le Lecteur/écriture de texte bien connu mais j'ai des problèmes pour charger le module. Je charge le module ici :

Microsoft.Maps.registerModule("WKTModule", "../../JS/WKTModule.js");
Microsoft.Maps.loadModule("WKTModule");

Je définis ensuite un calque pour y ajouter des formes :

var countyLayer = new Microsoft.Maps.EntityCollection();

Mais lorsque j'essaie d'utiliser le modèle dans le bloc suivant, je reçois l'erreur "WKTModule is not defined".

jQuery.each(config.CountyData, function (k, v) {
    var polygon = WKTModule.Read(v.Value, { polygonOptions: { fillColor: new Microsoft.Maps.Color(50, 255, 0, 0), strokeColor: new Microsoft.Maps.Color(255, 0, 0, 0), strokeThickness: parseInt(1)} });
    countyLayer.push(polygon);
});

EDIT : Trouvé la solution

Je suppose que le module n'est pas chargé à temps lorsque j'essaie de l'utiliser pour cette lecture. Donc, au lieu d'appeler la méthode après le chargement, j'ai ajouté la fonction à un paramètre du chargement pour qu'il appelle la fonction une fois chargé. Voici le nouveau code :

Microsoft.Maps.loadModule("WKTModule", { callback: addCounties });

var addCounties = function() {    
    jQuery.each(config.CountyData, function (k, v) {
        var polygon = WKTModule.Read(v.Value, { polygonOptions: { fillColor: new Microsoft.Maps.Color(50, 255, 0, 0), strokeColor: new Microsoft.Maps.Color(255, 0, 0, 0), strokeThickness: parseInt(1)} });
        countyLayer.push(polygon);
    });
};

0voto

Charlie H Points 2538

La raison en est que vous essayez d'utiliser le module avant qu'il ne soit chargé. N'oubliez pas qu'il s'agit d'un fichier externe et qu'il doit être chargé.

Vous pouvez utiliser le callback pour appeler une fonction lorsque le module est chargé.

Microsoft.Maps.loadModule("WKTModule" {callback: function() {

    console.log('the module is ready now');
}});

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X