summaryrefslogtreecommitdiff
path: root/misc/openlayers/lib/OpenLayers/Format/SOSCapabilities/v1_0_0.js
diff options
context:
space:
mode:
Diffstat (limited to 'misc/openlayers/lib/OpenLayers/Format/SOSCapabilities/v1_0_0.js')
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/SOSCapabilities/v1_0_0.js158
1 files changed, 158 insertions, 0 deletions
diff --git a/misc/openlayers/lib/OpenLayers/Format/SOSCapabilities/v1_0_0.js b/misc/openlayers/lib/OpenLayers/Format/SOSCapabilities/v1_0_0.js
new file mode 100644
index 0000000..89c0e91
--- /dev/null
+++ b/misc/openlayers/lib/OpenLayers/Format/SOSCapabilities/v1_0_0.js
@@ -0,0 +1,158 @@
+/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
+ * full list of contributors). Published under the 2-clause BSD license.
+ * See license.txt in the OpenLayers distribution or repository for the
+ * full text of the license. */
+
+/**
+ * @requires OpenLayers/Format/SOSCapabilities.js
+ * @requires OpenLayers/Format/OWSCommon/v1_1_0.js
+ * @requires OpenLayers/Format/GML/v3.js
+ */
+
+/**
+ * Class: OpenLayers.Format.SOSCapabilities.v1_0_0
+ * Read SOS Capabilities version 1.0.0.
+ *
+ * Inherits from:
+ * - <OpenLayers.Format.SOSCapabilities>
+ */
+OpenLayers.Format.SOSCapabilities.v1_0_0 = OpenLayers.Class(
+ OpenLayers.Format.SOSCapabilities, {
+
+ /**
+ * Property: namespaces
+ * {Object} Mapping of namespace aliases to namespace URIs.
+ */
+ namespaces: {
+ ows: "http://www.opengis.net/ows/1.1",
+ sos: "http://www.opengis.net/sos/1.0",
+ gml: "http://www.opengis.net/gml",
+ xlink: "http://www.w3.org/1999/xlink"
+ },
+
+ /**
+ * Property: regExes
+ * Compiled regular expressions for manipulating strings.
+ */
+ regExes: {
+ trimSpace: (/^\s*|\s*$/g),
+ removeSpace: (/\s*/g),
+ splitSpace: (/\s+/),
+ trimComma: (/\s*,\s*/g)
+ },
+
+ /**
+ * Constructor: OpenLayers.Format.SOSCapabilities.v1_0_0
+ * Create a new parser for SOS capabilities version 1.0.0.
+ *
+ * Parameters:
+ * options - {Object} An optional object whose properties will be set on
+ * this instance.
+ */
+ initialize: function(options) {
+ OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);
+ this.options = options;
+ },
+
+ /**
+ * APIMethod: read
+ * Read capabilities data from a string, and return info about the SOS.
+ *
+ * Parameters:
+ * data - {String} or {DOMElement} data to read/parse.
+ *
+ * Returns:
+ * {Object} Information about the SOS service.
+ */
+ read: function(data) {
+ if(typeof data == "string") {
+ data = OpenLayers.Format.XML.prototype.read.apply(this, [data]);
+ }
+ if(data && data.nodeType == 9) {
+ data = data.documentElement;
+ }
+ var capabilities = {};
+ this.readNode(data, capabilities);
+ return capabilities;
+ },
+
+ /**
+ * 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: {
+ "gml": OpenLayers.Util.applyDefaults({
+ "name": function(node, obj) {
+ obj.name = this.getChildValue(node);
+ },
+ "TimePeriod": function(node, obj) {
+ obj.timePeriod = {};
+ this.readChildNodes(node, obj.timePeriod);
+ },
+ "beginPosition": function(node, timePeriod) {
+ timePeriod.beginPosition = this.getChildValue(node);
+ },
+ "endPosition": function(node, timePeriod) {
+ timePeriod.endPosition = this.getChildValue(node);
+ }
+ }, OpenLayers.Format.GML.v3.prototype.readers["gml"]),
+ "sos": {
+ "Capabilities": function(node, obj) {
+ this.readChildNodes(node, obj);
+ },
+ "Contents": function(node, obj) {
+ obj.contents = {};
+ this.readChildNodes(node, obj.contents);
+ },
+ "ObservationOfferingList": function(node, contents) {
+ contents.offeringList = {};
+ this.readChildNodes(node, contents.offeringList);
+ },
+ "ObservationOffering": function(node, offeringList) {
+ var id = this.getAttributeNS(node, this.namespaces.gml, "id");
+ offeringList[id] = {
+ procedures: [],
+ observedProperties: [],
+ featureOfInterestIds: [],
+ responseFormats: [],
+ resultModels: [],
+ responseModes: []
+ };
+ this.readChildNodes(node, offeringList[id]);
+ },
+ "time": function(node, offering) {
+ offering.time = {};
+ this.readChildNodes(node, offering.time);
+ },
+ "procedure": function(node, offering) {
+ offering.procedures.push(this.getAttributeNS(node,
+ this.namespaces.xlink, "href"));
+ },
+ "observedProperty": function(node, offering) {
+ offering.observedProperties.push(this.getAttributeNS(node,
+ this.namespaces.xlink, "href"));
+ },
+ "featureOfInterest": function(node, offering) {
+ offering.featureOfInterestIds.push(this.getAttributeNS(node,
+ this.namespaces.xlink, "href"));
+ },
+ "responseFormat": function(node, offering) {
+ offering.responseFormats.push(this.getChildValue(node));
+ },
+ "resultModel": function(node, offering) {
+ offering.resultModels.push(this.getChildValue(node));
+ },
+ "responseMode": function(node, offering) {
+ offering.responseModes.push(this.getChildValue(node));
+ }
+ },
+ "ows": OpenLayers.Format.OWSCommon.v1_1_0.prototype.readers["ows"]
+ },
+
+ CLASS_NAME: "OpenLayers.Format.SOSCapabilities.v1_0_0"
+
+});