6

typescriptを使用して開発されたopenlayers 3プロジェクトに取り組んでいるため、次のようになります。

let ol = require("openlayers");

NPM ( http://viglino.github.io/ol3-ext/interaction/transforminteraction.js )で公開されていない変換拡張プラグインを使用したい

私は次のことを試しました:

let ol = require("openlayers");
require("<path>/ol/transforminteraction");

ただし、次のエラーが発生します。

エラー TypeError: ol.interaction.Transform はコンストラクターではありません

Uncaught ReferenceError: ol が定義されていません

このリソースを正しくインクルード/統合するにはどうすればよいですか?

4

3 に答える 3

3
let ol = require("openlayers");

これは、 olがグローバル スコープにないことを意味するため、 transforminteractionを拡張することはできません。

プラグイン コードを見ると、

module.exports = function(ol) {
   ...
}

これにより、olが関数スコープに入れられます。

次に、引数としてolを渡して拡張することで使用できます。例えば

let ol = require("openlayers");
require("<path>/ol/transforminteraction")(ol);
于 2017-07-10T12:14:22.763 に答える
0

この問題を load.js ファイルに追加して解決しました。

if (debugMode) { 
    addScriptFile('//cdnjs.cloudflare.com/ajax/libs/ol3/' + olVersion + '/ol-debug.js');
    addScriptFile('//viglino.github.io/ol-ext/dist/ol-ext.js'); 
} else { 
    addScriptFile('//cdnjs.cloudflare.com/ajax/libs/ol3/' + olVersion + '/ol.js');   
    addScriptFile('//viglino.github.io/ol-ext/dist/ol-ext.js'); 
}

于 2019-04-12T07:55:17.200 に答える