javascript - 如何在JS中制作一个函数

标签 javascript function openlayers-3 web-feature-service

这是一个在我的脚本中重复几次的代码,所以我想将其作为函数。我希望它成为最基本的功能。另外,如果有人能给我一个例子,我将非常感激如何在代码中调用函数。预先非常感谢您!

通过代码更改的内容会粗体(出于将来的目的:我使用 OpenLayers3 从 GeoServer 调用 WFS 层):

    // format used to parse WFS GetFeature responses
    var **layer**GeojsonFormat = new ol.format.GeoJSON();

    // source
    var **layer**Source = new ol.source.Vector({
      loader: function(extent, resolution, projection) {
        var url = 'http://localhost:8080/geoserver/wfs?service=WFS&' +
            'version=1.1.0&request=GetFeature&typename=**ws**:**layer**&' +
            'outputFormat=text/javascript&format_options=callback:**layer**LoadFeatures' +
            '&srsname=EPSG:3765&bbox=' + extent.join(',') + ',EPSG:3765';
        // use jsonp: false to prevent jQuery from adding the "callback"
        // parameter to the URL
        $.ajax({url: url, dataType: 'jsonp', jsonp: false});
      },
      strategy: ol.loadingstrategy.bbox
    });

    /**
     * JSONP WFS callback function.
     * @param {Object} response The response object.
     */
    window.**layer**LoadFeatures = function(response) {
      **layer**Source.addFeatures(**layer**GeojsonFormat.readFeatures(response));
    };

   // layer
    var **layer**Layer = new ol.layer.Vector({
      source: **layer**Source,
      style: **layer**Style
    });

稍后,每个图层都必须包含在 map 中,因此我还需要返回 var 的layerLayer:

// map
var map = new ol.Map({
  target: document.getElementById('map'),
  renderer: 'canvas',
  view: olview,
  layers: [layerOneLayer, layerTwoLayer, layerThreeLayer, ...],
    logo: false
});

最佳答案

将代码包装在函数中,然后像这样调用它 - someFunction()

function someFunction() {
      // format used to parse WFS GetFeature responses
      var * * layer * * GeojsonFormat = new ol.format.GeoJSON();
  // source
  var * * layer * * Source = new ol.source.Vector({
    loader: function(extent, resolution, projection) {
      var url = 'http://localhost:8080/geoserver/wfs?service=WFS&' +
        'version=1.1.0&request=GetFeature&typename=**ws**:**layer**&' +
        'outputFormat=text/javascript&format_options=callback:**layer**LoadFeatures' +
        '&srsname=EPSG:3765&bbox=' + extent.join(',') + ',EPSG:3765';
      // use jsonp: false to prevent jQuery from adding the "callback"
      // parameter to the URL
      $.ajax({
        url: url,
        dataType: 'jsonp',
        jsonp: false
      });
    },
    strategy: ol.loadingstrategy.bbox
  });

  /**
   * JSONP WFS callback function.
   * @param {Object} response The response object.
   */
  window.* * layer * * LoadFeatures = function(response) { * * layer * * Source.addFeatures( * * layer * * GeojsonFormat.readFeatures(response));
  };

  // layer
  var * * layer * * Layer = new ol.layer.Vector({
    source: * * layer * * Source,
    style: * * layer * * Style
  });
}

someFunction()

关于javascript - 如何在JS中制作一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47093867/

相关文章:

javascript - 集成 KnockoutJS 可观察对象和 YUI 小部件

javascript - 是什么删除了我注入(inject)的元素?

PHP set_time_limit 有效但返回 false

javascript - Ol3 功能的唯一标识符

openlayers-3 - 如何在打开的图层3中获得粗体标签?

javascript - 如何访问从 JQuery 收到的 JSON 响应中的数据?

javascript - jquery 克隆 + 实时问题

c++ - 为什么只有指向函数的指针而不是函数的var?

JavaScript for 循环 innerHTML 返回未定义

javascript - 使用鼠标交互选择 GeoJSON 功能 - OpenLayers 3