2

Well Known Text Reader/Writerを使用しようとしていますが、モジュールの読み込みに問題があります。ここでモジュールをロードします。

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

次に、シェイプを追加するレイヤーを定義します。

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

しかし、この次のブロックでモデルを使用しようとすると、「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);
});

編集:修正が見つかりました

私が推測しているのは、その読み取りにモジュールを使用しようとすると、モジュールが間に合わないということです。そのため、ロード後にメソッドを呼び出すだけでなく、ロード時の設定に関数を追加して、ロード後に関数が呼び出されるようにしました。新しいコードは次のとおりです。

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

1 に答える 1

0

その理由は、ロードされる前にモジュールを使用しようとしているためです。これは外部ファイルであり、ロードする必要があることを忘れないでください。

オプションを使用してcallback、モジュールのロード時に関数を呼び出すことができます。

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

    console.log('the module is ready now');
}});
于 2016-04-06T09:34:10.493 に答える