2017-11-03 5 views
1

Dies ist ein Code, der in meinem Skript einige Male wiederholt, also möchte ich es als Funktion machen. Ich möchte, dass es die grundlegendste Funktion ist, die sein kann. Auch würde ich sehr schätzen, wenn jemand mir ein Beispiel geben würde, wie ich eine Funktion innerhalb meines Codes nennen kann. Vielen Dank im Voraus!Wie man eine Funktion in JS macht

Dinge, die durch den Code zu ändern sind fett gemacht (Für zukünftige Zwecke: Ich rufe WFS Schicht aus GeoServer mit OpenLayers3):

// 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 
    }); 

Später muss jede Schicht in einer Karte enthalten sein, so ich brauche layerLayer haben var auch zurückgegeben:

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

Ist '** Layer ** Layer 'der tatsächliche Variablenname? – evolutionxbox

+0

** Layer ** ist veränderbares Segment über wholecode.So wäre es etw so: ** Layer ** = LayerOne, dann ** Layer ** = LayerTwo. Gleiches mit ** ws ** – mycupoftea

Antwort

0

den Code in einer Funktion Wickeln und dann rufen sie so - Funktion()

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() 
+0

Sollte ich Name der Schicht und ws irgendwie übergeben, da sie veränderbare Argumente sind – mycupoftea

+0

ja, Sie später in die Funktion als Variable übergehen – marcusps1

Verwandte Themen