如何集成 openlayers 3 转换扩展



我正在做一个使用打字稿开发的openlayers 3项目,因此:

let ol = require("openlayers");

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

我尝试了以下方法:

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

但是我收到以下错误:

错误

类型错误:ol.interaction.transform 不是构造函数

未捕获的引用错误: ol 未定义

如何正确包含/集成此资源?

let ol = require("openlayers");

这意味着ol不在全局范围内,因此它不可用于转换交互以扩展。

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

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

这会将ol放入函数范围。

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

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

您可以将"transforminteraction.js"代码包含在单独的文件中,浏览器将与HTML文档一起下载该文件。 从html文件中剪切JS代码,并将其粘贴到"转换交互.js中 文件,不要忘记window.onload = function() { ...your code js + transforminteraction.js }。 还要检查:

OL3-ext 的克隆存储库: https://github.com/Viglino/ol3-ext

或:

https://github.com/Rep1ay/openLayer.git

我在加载.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'); 
}

最新更新