Software: Apache. PHP/5.5.15 uname -a: Windows NT SVR-DMZ 6.1 build 7600 (Windows Server 2008 R2 Enterprise Edition) i586 SYSTEM Safe-mode: OFF (not secure) C:\dmz\phpMyAdmin\js\openlayers\src\openlayers\lib\OpenLayers\Format\WFST\ drwxrwxrwx |
Viewing file: v1.js (12.23 KB) -rw-rw-rw- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) | /* 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/Format/XML.js * @requires OpenLayers/Format/WFST.js */ /** * Class: OpenLayers.Format.WFST.v1 * Superclass for WFST parsers. * * Inherits from: * - <OpenLayers.Format.XML> */ OpenLayers.Format.WFST.v1 = OpenLayers.Class(OpenLayers.Format.XML, { /** * Property: namespaces * {Object} Mapping of namespace aliases to namespace URIs. */ namespaces: { xlink: "http://www.w3.org/1999/xlink", xsi: "http://www.w3.org/2001/XMLSchema-instance", wfs: "http://www.opengis.net/wfs", gml: "http://www.opengis.net/gml", ogc: "http://www.opengis.net/ogc" }, /** * Property: defaultPrefix */ defaultPrefix: "wfs", /** * Property: version * {String} WFS version number. */ version: null, /** * Property: schemaLocation * {String} Schema location for a particular minor version. */ schemaLocations: null, /** * APIProperty: srsName * {String} URI for spatial reference system. */ srsName: null, /** * APIProperty: extractAttributes * {Boolean} Extract attributes from GML. Default is true. */ extractAttributes: true, /** * APIProperty: xy * {Boolean} Order of the GML coordinate true:(x,y) or false:(y,x) * Changing is not recommended, a new Format should be instantiated. */ xy: true, /** * Property: stateName * {Object} Maps feature states to node names. */ stateName: null, /** * Constructor: OpenLayers.Format.WFST.v1 * Instances of this class are not created directly. Use the * <OpenLayers.Format.WFST.v1_0_0> or <OpenLayers.Format.WFST.v1_1_0> * constructor instead. * * Parameters: * options - {Object} An optional object whose properties will be set on * this instance. */ initialize: function(options) { // set state name mapping this.stateName = {}; this.stateName[OpenLayers.State.INSERT] = "wfs:Insert"; this.stateName[OpenLayers.State.UPDATE] = "wfs:Update"; this.stateName[OpenLayers.State.DELETE] = "wfs:Delete"; OpenLayers.Format.XML.prototype.initialize.apply(this, [options]); }, /** * Method: getSrsName */ getSrsName: function(feature, options) { var srsName = options && options.srsName; if(!srsName) { if(feature && feature.layer) { srsName = feature.layer.projection.getCode(); } else { srsName = this.srsName; } } return srsName; }, /** * APIMethod: read * Parse the response from a transaction. Because WFS is split into * Transaction requests (create, update, and delete) and GetFeature * requests (read), this method handles parsing of both types of * responses. * * Parameters: * data - {String | Document} The WFST document to read * options - {Object} Options for the reader * * Valid options properties: * output - {String} either "features" or "object". The default is * "features", which means that the method will return an array of * features. If set to "object", an object with a "features" property * and other properties read by the parser will be returned. * * Returns: * {Array | Object} Output depending on the output option. */ read: function(data, options) { options = options || {}; OpenLayers.Util.applyDefaults(options, { output: "features" }); if(typeof data == "string") { data = OpenLayers.Format.XML.prototype.read.apply(this, [data]); } if(data && data.nodeType == 9) { data = data.documentElement; } var obj = {}; if(data) { this.readNode(data, obj); } if(obj.features && options.output === "features") { obj = obj.features; } return obj; }, /** * Property: readers * Contains public functions, grouped by namespace prefix, that will * be applied when a namespaced node is found matching the function * name. The function will be applied in the scope of this parser * with two arguments: the node being read and a context object passed * from the parent. */ readers: { "wfs": { "FeatureCollection": function(node, obj) { obj.features = []; this.readChildNodes(node, obj); } } }, /** * Method: write * Given an array of features, write a WFS transaction. This assumes * the features have a state property that determines the operation * type - insert, update, or delete. * * Parameters: * features - {Array(<OpenLayers.Feature.Vector>)} A list of features. * * Returns: * {String} A serialized WFS transaction. */ write: function(features) { var node = this.writeNode("wfs:Transaction", features); var value = this.schemaLocationAttr(); if(value) { this.setAttributeNS( node, this.namespaces["xsi"], "xsi:schemaLocation", value ) } return OpenLayers.Format.XML.prototype.write.apply(this, [node]); }, /** * Property: writers * As a compliment to the readers property, this structure contains public * writing functions grouped by namespace alias and named like the * node names they produce. */ writers: { "wfs": { "GetFeature": function(options) { var node = this.createElementNSPlus("wfs:GetFeature", { attributes: { service: "WFS", version: this.version, outputFormat: options && options.outputFormat, maxFeatures: options && options.maxFeatures, "xsi:schemaLocation": this.schemaLocationAttr(options) } }); if (typeof this.featureType == "string") { this.writeNode("Query", options, node); } else { for (var i=0,len = this.featureType.length; i<len; i++) { options.featureType = this.featureType[i]; this.writeNode("Query", options, node); } } return node; }, "Transaction": function(features) { var node = this.createElementNSPlus("wfs:Transaction", { attributes: { service: "WFS", version: this.version } }); if(features) { var name, feature; for(var i=0, len=features.length; i<len; ++i) { feature = features[i]; name = this.stateName[feature.state]; if(name) { this.writeNode(name, feature, node); } } } return node; }, "Insert": function(feature) { var node = this.createElementNSPlus("wfs:Insert"); this.srsName = this.getSrsName(feature); this.writeNode("feature:_typeName", feature, node); return node; }, "Update": function(feature) { var node = this.createElementNSPlus("wfs:Update", { attributes: { typeName: (this.featureNS ? this.featurePrefix + ":" : "") + this.featureType } }); if(this.featureNS) { node.setAttribute("xmlns:" + this.featurePrefix, this.featureNS); } // add in geometry if (this.geometryName !== null) { this.writeNode( "Property", {name: this.geometryName, value: feature}, node ); } // add in attributes for(var key in feature.attributes) { if(feature.attributes[key] !== undefined) { this.writeNode( "Property", {name: key, value: feature.attributes[key]}, node ); } } // add feature id filter this.writeNode("ogc:Filter", new OpenLayers.Filter.FeatureId({ fids: [feature.fid] }), node); return node; }, "Property": function(obj) { var node = this.createElementNSPlus("wfs:Property"); this.writeNode("Name", obj.name, node); if(obj.value !== null) { this.writeNode("Value", obj.value, node); } return node; }, "Name": function(name) { return this.createElementNSPlus("wfs:Name", {value: name}); }, "Value": function(obj) { var node; if(obj instanceof OpenLayers.Feature.Vector) { node = this.createElementNSPlus("wfs:Value"); this.srsName = this.getSrsName(obj); var geom = this.writeNode("feature:_geometry", obj.geometry).firstChild; node.appendChild(geom); } else { node = this.createElementNSPlus("wfs:Value", {value: obj}); } return node; }, "Delete": function(feature) { var node = this.createElementNSPlus("wfs:Delete", { attributes: { typeName: (this.featureNS ? this.featurePrefix + ":" : "") + this.featureType } }); if(this.featureNS) { node.setAttribute("xmlns:" + this.featurePrefix, this.featureNS); } this.writeNode("ogc:Filter", new OpenLayers.Filter.FeatureId({ fids: [feature.fid] }), node); return node; } } }, /** * Method: schemaLocationAttr * Generate the xsi:schemaLocation attribute value. * * Returns: * {String} The xsi:schemaLocation attribute or undefined if none. */ schemaLocationAttr: function(options) { options = OpenLayers.Util.extend({ featurePrefix: this.featurePrefix, schema: this.schema }, options); var schemaLocations = OpenLayers.Util.extend({}, this.schemaLocations); if(options.schema) { schemaLocations[options.featurePrefix] = options.schema; } var parts = []; var uri; for(var key in schemaLocations) { uri = this.namespaces[key]; if(uri) { parts.push(uri + " " + schemaLocations[key]); } } var value = parts.join(" ") || undefined; return value; }, /** * Method: setFilterProperty * Set the property of each spatial filter. * * Parameters: * filter - {<OpenLayers.Filter>} */ setFilterProperty: function(filter) { if(filter.filters) { for(var i=0, len=filter.filters.length; i<len; ++i) { this.setFilterProperty(filter.filters[i]); } } else { if(filter instanceof OpenLayers.Filter.Spatial) { // got a spatial filter, set its property filter.property = this.geometryName; } } }, CLASS_NAME: "OpenLayers.Format.WFST.v1" }); |
:: Command execute :: | |
--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0312 ]-- |