added fromWMSLayer convenience function to Protocol.WFS. Thanks tschaub
for the improved patch. r=tschaub (closes #1937) git-svn-id: http://svn.openlayers.org/trunk/openlayers@8993 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -20,6 +20,44 @@ OpenLayers.Protocol.WFS = function(options) {
|
||||
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
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user