2012-07-23 66 views
2

我试图使用Well Known Text Reader/Writer,但我在加载模块时遇到问题。我在这里装载该模块:必应地图v7模块未加载

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

我再定义一个层形状添加到:

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

但是当我尝试使用模型在随后的块中,我得到的错误“WKTModule是未定义”

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); 
}); 

编辑:实测值修正

我猜测它发生的是,当我尝试使用它读取时,模块没有及时加载。因此,我不是在加载后调用方法,而是将该函数添加到加载的设置上,以便在加载后调用该函数。以下是新代码:

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); 
    }); 
}; 
+1

您确定'../../ JS/WKTModule.js'是正确的路径吗? – 2012-07-23 15:22:14

+0

@火箭:我试过使用该路径,绝对路径以及该文件所在的外部网站的路径。他们都没有工作。 – 2012-07-23 15:55:37

回答

0

原因是您正试图在加载之前使用该模块。不要忘记它是一个外部文件,应该加载。

您可以使用callback选项在模块加载时调用函数。

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

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