Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
编写OpenLayers 4 javascript插件的良好模式_Openlayers - Fatal编程技术网

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

编写OpenLayers 4 javascript插件的良好模式,openlayers,Openlayers,我正在编写一个OpenLayers 4插件,并希望遵循一些现有OL插件库的方法。是否有一个OpenLayers 4插件的推荐/高质量示例,我可以对代码进行建模?位于主OL存储库之外的代码 谢谢 OL Extensions有很多不同交互的例子被写为单独的扩展:OL Extensions有很多不同交互的例子被写为单独的扩展:我维护了几个OpenLayers插件,我最近更新了这些插件以与OL包兼容。我发现使用它效果很好 这两个插件都很小,但以源代码为例。注意事项: 中的源JavaScript从ol包

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


谢谢

OL Extensions有很多不同交互的例子被写为单独的扩展:

OL Extensions有很多不同交互的例子被写为单独的扩展:

我维护了几个OpenLayers插件,我最近更新了这些插件以与
OL
包兼容。我发现使用它效果很好

这两个插件都很小,但以源代码为例。注意事项:

  • 中的源JavaScript从
    ol
    包中导入其依赖项,并导出单个
    弹出窗口
  • src/ol popup.js
    通过汇总进行转换(请参见和。
    • Rollup将代码转换为纯JS,并将所有内容包装在UMD中,该UMD允许您通过应用程序中的
      require
      或es6
      import
      通过脚本标记直接在浏览器中使用插件。转换后的代码位于
      dist
      目录中
    • rollup.config.js
      的有趣部分是:
      • external
        函数,它告诉Rollup将
        ol
        模块视为构建的外部模块(因此它们不会包含在
        dist/ol popup.js
      • globals
        对象将es6模块名称映射到完整托管OpenLayers构建中的“虚线”等效项

我维护了几个OpenLayers插件,最近我更新了这些插件,使之与
ol
包兼容。我发现使用OpenLayers插件效果非常好

这两个插件都很小,但以的源代码为例。需要注意的事项:

  • 中的源JavaScript从
    ol
    包中导入其依赖项,并导出单个
    弹出窗口
  • src/ol popup.js
    通过汇总进行转换(请参见和。
    • Rollup将代码转换为纯JS,并将所有内容包装在UMD中,该UMD允许您通过应用程序中的
      require
      或es6
      import
      通过脚本标记直接在浏览器中使用插件。转换后的代码位于
      dist
      目录中
    • rollup.config.js
      的有趣部分是:
      • external
        函数,它告诉Rollup将
        ol
        模块视为构建的外部模块(因此它们不会包含在
        dist/ol popup.js
      • globals
        对象将es6模块名称映射到完整托管OpenLayers构建中的“虚线”等效项

    • 官方页面上有几个插件

      编写自己的插件时的一些建议:

      • 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的功能

          我想知道为什么有人否决了这个问题和所有答案。对我来说似乎是一个合法的问题…我想知道为什么有人否决了这个问题和所有答案。对我来说似乎是一个合法的问题…目前我正在使用一个构建步骤来创建UMD捆绑包,并支持在完全托管的构建中使用,你认为呢希望每个人都能使用
          ol
          软件包和es6?我还提供了一个完整的插件版本,可以与完整的OpenLayers版本一起使用。但我相信,我们会看到越来越多的开发人员使用带有捆绑包的模块来创建一个包含所有库和应用程序代码的js文件。目前,我正在使用构建步骤来cre使用UMD捆绑包并支持使用完整托管版本,将来您希望每个人都使用
          ol
          软件包和es6吗?我还提供了一个完整的插件版本,可以与完整的OpenLayers版本一起使用。但我相信,我们会看到越来越多的开发人员使用捆绑包模块创建一个单独的js文件所有库和应用程序代码。