1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | /* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for * full list of contributors). Published under the Clear BSD license. * See http://svn.openlayers.org/trunk/openlayers/license.txt for the * full text of the license. */ /** * @requires OpenLayers/Protocol.js */ /** * Function: OpenLayers.Protocol.WFS * Used to create a versioned WFS protocol. Default version is 1.0.0. * * Returns: * {<OpenLayers.Protocol>} A WFS protocol of the given version. */ OpenLayers.Protocol.WFS = function(options) { options = OpenLayers.Util.applyDefaults( options, OpenLayers.Protocol.WFS.DEFAULTS ); var cls = OpenLayers.Protocol.WFS["v"+options.version.replace(/\./g, "_")]; if(!cls) { throw "Unsupported WFS version: " + options.version; } return new cls(options); }; /** * Function: OpenLayers.Protocol.WFS.fromWMSLayer * Convenience function to create a WFS protocol from a WMS layer. This makes * the assumption that a WFS requests can be issued at the same URL as * WMS requests and that a WFS featureType exists with the same name as the * WMS layer. * * This function is designed to auto-configure <url>, <featureType>, * <featurePrefix> and <srsName> for WFS <version> 1.1.0. Note that * srsName matching with the WMS layer will not work with WFS 1.0.0.. * * Parameters: * layer - {<OpenLayers.Layer.WMS>} WMS layer that has a matching WFS * FeatureType at the same server url with the same typename. * options - {Object} Default properties to be set on the protocol. * */ OpenLayers.Protocol.WFS.fromWMSLayer = function(layer, options) { var typeName, featurePrefix; var param = layer.params["LAYERS"]; var parts = (param instanceof Array ? param[0] : param).split(":"); if(parts.length > 1) { featurePrefix = parts[0]; } typeName = parts.pop(); var protocolOptions = { url: layer.url, featureType: typeName, featurePrefix: featurePrefix, srsName: layer.projection && layer.projection.getCode() || layer.map && layer.map.getProjectionObject().getCode(), version: "1.1.0" }; return new OpenLayers.Protocol.WFS(OpenLayers.Util.applyDefaults( options, protocolOptions )); }; /** * Constant: OpenLayers.Protocol.WFS.DEFAULTS */ OpenLayers.Protocol.WFS.DEFAULTS = { "version": "1.0.0" }; |