如何集成openlayers 3转换扩展

vic*_*yso 6 typescript openlayers-3 angular-openlayers

我正在开发一个openlayers 3项目,使用typescript开发,因此:

let ol = require("openlayers");
Run Code Online (Sandbox Code Playgroud)

我想使用转换扩展插件,它不在NPM上发布(http://viglino.github.io/ol3-ext/interaction/transforminteraction.js)

我尝试了以下方法:

let ol = require("openlayers");
require("<path>/ol/transforminteraction");
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

错误TypeError:ol.interaction.Transform不是构造函数

未捕获的ReferenceError:ol未定义

我如何才能正确包含/整合此资源?

小智 3

let ol = require("openlayers");
Run Code Online (Sandbox Code Playgroud)

这意味着ol不在全局范围内,因此它无法用于TransformInteraction进行扩展。

查看插件代码,您应该能够将其包装在

module.exports = function(ol) {
   ...
}
Run Code Online (Sandbox Code Playgroud)

这会将ol放入函数范围内。

然后您可以通过传入ol作为参数来扩展它来使用它。例如

let ol = require("openlayers");
require("<path>/ol/transforminteraction")(ol);
Run Code Online (Sandbox Code Playgroud)