首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >编写OpenLayers 4 javascript插件的良好模式

编写OpenLayers 4 javascript插件的良好模式
EN

Stack Overflow用户
提问于 2018-03-08 23:51:05
回答 3查看 445关注 0票数 0

我正在编写一个OpenLayers 4插件,并希望遵循一些现有的OL插件库的方法。是否有一个推荐的/高质量的OpenLayers 4插件的例子,我可以对我的代码建模?驻留在主OL存储库之外的代码。

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-03-09 16:16:45

我维护了几个OpenLayers插件,我最近更新了这些插件,使其与ol包兼容。我发现使用https://rollupjs.org/的效果很好。

这两个插件都很小,但是以https://github.com/walkermatt/ol-popup的源代码为例。要注意的事情:

  • src/ol-popup.js中的源src/ol-popup.jsol包导入它的依赖项,并导出一个Popup类。
  • src/ol-popup.js由rollup转换(参见package.jsonrollup.config.js )。
    • Rollup将代码转换成普通的JS,并将所有内容封装在UMD中,这允许您通过应用程序中的require或es6 import直接在浏览器中使用插件。转换后的代码位于dist目录中。
    • rollup.config.js的有趣部分是:
      • external函数,它告诉汇总将ol模块作为构建的外部处理(因此它们不包含在dist/ol-popup.js中)
      • globals对象将es6模块名映射到完全托管的OpenLayers构建中的“虚线”等效项。

票数 2
EN

Stack Overflow用户

发布于 2018-03-09 15:05:58

OL扩展有很多不同交互的示例,它们都是作为单个扩展编写的:https://github.com/Viglino/ol-ext/

票数 1
EN

Stack Overflow用户

发布于 2018-03-09 19:27:10

官方第三方图书馆页面上有几个插件。

在编写自己的插件时,有几点建议:

  • OpenLayers功能可以通过多种方式进行扩展,因此没有通用模式。
  • 您可以通过子类现有控件和交互来创建自定义控件和交互,或者使用插件可以提供的处理程序函数配置ol/interaction/Interactionol/control/Control
  • 您可以通过多种方式扩展层源,例如提供自定义的tileUrlFunctiontileLoadFunction函数。
  • 您的插件可以连接到OpenLayers组件发出的众多事件中的任何一个。
  • OpenLayers 4+是作为一组ES模块(https://npmjs.com/package/ol)提供的,因此您不需要担心打包。应用程序开发人员将从OpenLayers和您的插件中导入他们所需的内容。
  • 只使用OpenLayers中列出的API文档特性是很好的做法。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49184442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档