编写OpenLayers 4 javascript插件的良好模式
我正在编写一个OpenLayers 4插件,并希望遵循一些现有OL插件库的方法。是否有一个OpenLayers 4插件的推荐/高质量示例,我可以对代码进行建模?位于主OL存储库之外的代码编写OpenLayers 4 javascript插件的良好模式,openlayers,Openlayers,我正在编写一个OpenLayers 4插件,并希望遵循一些现有OL插件库的方法。是否有一个OpenLayers 4插件的推荐/高质量示例,我可以对代码进行建模?位于主OL存储库之外的代码 谢谢 OL Extensions有很多不同交互的例子被写为单独的扩展:OL Extensions有很多不同交互的例子被写为单独的扩展:我维护了几个OpenLayers插件,我最近更新了这些插件以与OL包兼容。我发现使用它效果很好 这两个插件都很小,但以源代码为例。注意事项: 中的源JavaScript从ol包
谢谢 OL Extensions有很多不同交互的例子被写为单独的扩展:OL Extensions有很多不同交互的例子被写为单独的扩展:我维护了几个OpenLayers插件,我最近更新了这些插件以与
OL
包兼容。我发现使用它效果很好
这两个插件都很小,但以源代码为例。注意事项:
- 中的源JavaScript从
包中导入其依赖项,并导出单个ol
类弹出窗口
通过汇总进行转换(请参见和。src/ol popup.js
- Rollup将代码转换为纯JS,并将所有内容包装在UMD中,该UMD允许您通过应用程序中的
或es6require
通过脚本标记直接在浏览器中使用插件。转换后的代码位于import
目录中dist
的有趣部分是:rollup.config.js
函数,它告诉Rollup将external
模块视为构建的外部模块(因此它们不会包含在ol
)dist/ol popup.js
对象将es6模块名称映射到完整托管OpenLayers构建中的“虚线”等效项globals
- Rollup将代码转换为纯JS,并将所有内容包装在UMD中,该UMD允许您通过应用程序中的
ol
包兼容。我发现使用OpenLayers插件效果非常好
这两个插件都很小,但以的源代码为例。需要注意的事项:
- 中的源JavaScript从
包中导入其依赖项,并导出单个ol
类弹出窗口
通过汇总进行转换(请参见和。src/ol popup.js
- Rollup将代码转换为纯JS,并将所有内容包装在UMD中,该UMD允许您通过应用程序中的
或es6require
通过脚本标记直接在浏览器中使用插件。转换后的代码位于import
目录中dist
的有趣部分是:rollup.config.js
函数,它告诉Rollup将external
模块视为构建的外部模块(因此它们不会包含在ol
)dist/ol popup.js
对象将es6模块名称映射到完整托管OpenLayers构建中的“虚线”等效项globals
- Rollup将代码转换为纯JS,并将所有内容包装在UMD中,该UMD允许您通过应用程序中的
- OpenLayers功能可以通过多种方式扩展,因此没有通用模式
- 您可以通过对现有控件和交互进行子类化,或者通过使用插件可以提供的处理函数配置
或ol/interaction/interaction
来创建自定义控件和交互ol/control/control
- 您可以通过多种方式扩展图层源,例如通过提供自定义
或tileUrlFunction
函数tileLoadFunction
- 您的插件可以挂接到OpenLayers组件发出的众多事件中的任何一个
- OpenLayers 4+是作为一组ES模块()提供的,因此您无需担心打包问题。应用程序开发人员将从OpenLayers和您的插件导入他们需要的内容
- 最好只使用中列出的OpenLayers的功能
- OpenLayers功能可以通过多种方式扩展,因此没有通用模式
- 您可以通过对现有控件和交互进行子类化,或者通过使用插件可以提供的处理函数配置
或ol/interaction/interaction
来创建自定义控件和交互ol/control/control
- 您可以通过多种方式扩展图层源,例如通过提供自定义
或tileUrlFunction
函数tileLoadFunction
- 您的插件可以挂接到OpenLayers组件发出的众多事件中的任何一个
- OpenLayers 4+是作为一组ES模块()提供的,因此您无需担心打包问题。应用程序开发人员将从OpenLayers和您的插件导入他们需要的内容
- 最好只使用中列出的OpenLayers的功能
- 官方页面上有几个插件
编写自己的插件时的一些建议:
- 官方页面上有几个插件
编写自己的插件时的一些建议:
ol
软件包和es6?我还提供了一个完整的插件版本,可以与完整的OpenLayers版本一起使用。但我相信,我们会看到越来越多的开发人员使用带有捆绑包的模块来创建一个包含所有库和应用程序代码的js文件。目前,我正在使用构建步骤来cre使用UMD捆绑包并支持使用完整托管版本,将来您希望每个人都使用ol
软件包和es6吗?我还提供了一个完整的插件版本,可以与完整的OpenLayers版本一起使用。但我相信,我们会看到越来越多的开发人员使用捆绑包模块创建一个单独的js文件所有库和应用程序代码。