2012-07-23 46 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'); 
}});