我正在尝试使用Well Known Text Reader/Writer,但我在加载模块时遇到问题。我在这里加载模块:
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);
});
};
答案 0 :(得分:0)
原因是您在加载模块之前尝试使用该模块。不要忘记它是一个外部文件,应该加载。
您可以使用callback
选项在加载模块时调用函数。
Microsoft.Maps.loadModule("WKTModule" {callback: function() {
console.log('the module is ready now');
}});