More trip planner testing with colors
[busui.git] / labs / openlayers / lib / OpenLayers / Protocol / WFS.js
blob:a/labs/openlayers/lib/OpenLayers/Protocol/WFS.js -> blob:b/labs/openlayers/lib/OpenLayers/Protocol/WFS.js
  /* 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"
  };