auto-create the GetFeature readFormat for known outputFormats. r=tschaub (closes #2968)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@10955 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -77,7 +77,7 @@ OpenLayers.Protocol.WFS.v1 = OpenLayers.Class(OpenLayers.Protocol, {
|
||||
* the response with the default format (WFST) and we need a different
|
||||
* format for reading.
|
||||
*/
|
||||
readFormat: null,
|
||||
readFormat: null,
|
||||
|
||||
/**
|
||||
* Property: readOptions
|
||||
|
||||
@@ -42,7 +42,27 @@ OpenLayers.Protocol.WFS.v1_1_0 = OpenLayers.Class(OpenLayers.Protocol.WFS.v1, {
|
||||
* featurePrefix - {String} Feature namespace alias (optional - only used
|
||||
* if featureNS is provided). Default is 'feature'.
|
||||
* geometryName - {String} Name of geometry attribute. Default is 'the_geom'.
|
||||
* outputFormat - {String} Optional output format to use for WFS GetFeature
|
||||
* requests. This can be any format advertized by the WFS's
|
||||
* GetCapabilities response. If set, an appropriate readFormat also
|
||||
* has to be provided, unless outputFormat is GML3, GML2 or JSON.
|
||||
* readFormat - {<OpenLayers.Format>} An appropriate format parser if
|
||||
* outputFormat is none of GML3, GML2 or JSON.
|
||||
*/
|
||||
initialize: function(options) {
|
||||
OpenLayers.Protocol.WFS.v1.prototype.initialize.apply(this, arguments);
|
||||
if (this.outputFormat && !this.readFormat) {
|
||||
if (this.outputFormat.toLowerCase() == "gml2") {
|
||||
this.readFormat = new OpenLayers.Format.GML.v2({
|
||||
featureType: this.featureType,
|
||||
featureNS: this.featureNS,
|
||||
geometryName: this.geometryName
|
||||
});
|
||||
} else if (this.outputFormat.toLowerCase() == "json") {
|
||||
this.readFormat = new OpenLayers.Format.GeoJSON();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
CLASS_NAME: "OpenLayers.Protocol.WFS.v1_1_0"
|
||||
});
|
||||
|
||||
@@ -228,6 +228,30 @@
|
||||
t.eq(features.length, 1, "the right format is used to read the request (GeoJSON)");
|
||||
}
|
||||
|
||||
function test_outputFormat(t) {
|
||||
t.plan(2);
|
||||
|
||||
var protocol = new OpenLayers.Protocol.WFS({
|
||||
version: "1.1.0",
|
||||
url: "http://some.url.org",
|
||||
featureNS: "http://namespace.org",
|
||||
featureType: "type",
|
||||
outputFormat: 'json'
|
||||
});
|
||||
|
||||
t.ok(protocol.readFormat instanceof OpenLayers.Format.GeoJSON, "the correct readFormat is used for outputFormat JSON");
|
||||
|
||||
protocol = new OpenLayers.Protocol.WFS({
|
||||
version: "1.1.0",
|
||||
url: "http://some.url.org",
|
||||
featureNS: "http://namespace.org",
|
||||
featureType: "type",
|
||||
outputFormat: 'GML2'
|
||||
});
|
||||
|
||||
t.ok(protocol.readFormat instanceof OpenLayers.Format.GML.v2, "the correct readFormat is used for outputFormat GML2");
|
||||
}
|
||||
|
||||
function test_readOptions(t) {
|
||||
t.plan(1);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user