Changeset 10751


Ignore:
Timestamp:
Sep 15, 2010 3:52:13 AM (6 years ago)
Author:
sonxurxo
Message:

committing my previous work

Location:
sandbox/sonxurxo/sos
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • sandbox/sonxurxo/sos/examples/sos.html

    r10311 r10751  
    1212        var map;
    1313
    14         OpenLayers.ProxyHost = "proxy.cgi?url=";
    15         //OpenLayers.ProxyHost = "/cgi-bin/proxy.cgi?url=";
     14        //OpenLayers.ProxyHost = "proxy.cgi?url=";
     15        OpenLayers.ProxyHost = "/cgi-bin/proxy.cgi?url=";
    1616        OpenLayers.Util.extend(OpenLayers.Lang.en,
    1717            {
     
    3333                for (var name in this.SOSCapabilities.contents.offeringList) {
    3434                    var offering = this.SOSCapabilities.contents.offeringList[name];
    35                     if (offering.observedProperty === property) {
    36                         return offering.name;
     35                    for (var observedProperty in offering.observedProperties) {
     36                        if (offering.observedProperties[observedProperty] === property) {
     37                            return offering.name;
     38                        }
    3739                    }
    3840                }
     
    4143                this.count++;
    4244                var output = this.obsformat.read(response.responseXML || response.responseText);
    43                 this.html += '<tr>';
    44                 this.html += '<td width="100">'+this.getTitleForObservedProperty(output.measurements[0].observedProperty)+'</td>';
    45                 this.html += '<td>'+output.measurements[0].samplingTime.timeInstant.timePosition+'</td>';
    46                 this.html += '<td>'+output.measurements[0].result.value + ' ' + output.measurements[0].result.uom + '</td>';
    47                 this.html += '</tr>';
    48                 // check if we are done
    49                 if (this.count === this.numRequests) {
    50                     var html = '<table cellspacing="10"><tbody>';
    51                     html += '<tr>';
    52                     html += '<th><b>'+OpenLayers.i18n('SOSClientType')+'</b></th>';
    53                     html += '<th><b>'+OpenLayers.i18n('SOSClientTime')+'</b></th>';
    54                     html += '<th><b>'+OpenLayers.i18n('SOSClientLastvalue')+'</b></th>';
    55                     html += '</tr>';
    56                     html += this.html;
    57                     html += '</tbody></table>';
    58                     var popup = new OpenLayers.Popup.FramedCloud("sensor",
    59                     this.feature.geometry.getBounds().getCenterLonLat(),
    60                         null,
    61                         html,
    62                         null,
    63                         true,
    64                         function(e) {
    65                             this.hide();
    66                             OpenLayers.Event.stop(e);
    67                             // unselect so popup can be shown again
    68                             this.map.getControlsByClass('OpenLayers.Control.SelectFeature')[0].unselectAll();
    69                         }
    70                     );
    71                     this.feature.popup = popup;
    72                     this.map.addPopup(popup);
     45                if (output.measurements[0]) {
     46                    this.html += '<tr>';
     47                    this.html += '<td width="100">'+this.getTitleForObservedProperty(output.measurements[0].observedProperty)+'</td>';
     48                    this.html += '<td>'+output.measurements[0].samplingTime.timeInstant.timePosition+'</td>';
     49                    this.html += '<td>'+output.measurements[0].result.value + ' ' + output.measurements[0].result.uom + '</td>';
     50                    this.html += '</tr>';
     51                    // check if we are done
     52                    if (this.count === this.numRequests) {
     53                        var html = '<table cellspacing="10"><tbody>';
     54                        html += '<tr>';
     55                        html += '<th><b>'+OpenLayers.i18n('SOSClientType')+'</b></th>';
     56                        html += '<th><b>'+OpenLayers.i18n('SOSClientTime')+'</b></th>';
     57                        html += '<th><b>'+OpenLayers.i18n('SOSClientLastvalue')+'</b></th>';
     58                        html += '</tr>';
     59                        html += this.html;
     60                        html += '</tbody></table>';
     61                        var popup = new OpenLayers.Popup.FramedCloud("sensor",
     62                        this.feature.geometry.getBounds().getCenterLonLat(),
     63                            null,
     64                            html,
     65                            null,
     66                            true,
     67                            function(e) {
     68                                this.hide();
     69                                OpenLayers.Event.stop(e);
     70                                // unselect so popup can be shown again
     71                                this.map.getControlsByClass('OpenLayers.Control.SelectFeature')[0].unselectAll();
     72                            }
     73                        );
     74                        this.feature.popup = popup;
     75                        this.map.addPopup(popup);
     76                    }
    7377                }
    7478            },
     
    96100                    var xml = this.obsformat.write({
    97101                        eventTime: 'latest',
    98                         resultModel: 'measurement',
     102                        resultModel: 'om:Measurement',
    99103                        responseMode: 'inline',
    100                         procedure: feature.attributes.id,
     104                        procedures: [feature.attributes.id],
    101105                        offering: name,
    102                         observedProperty: offering.observedProperty,
     106                        observedProperties: offering.observedProperties,
    103107                        responseFormat: this.responseFormat
    104108                    });
  • sandbox/sonxurxo/sos/lib/OpenLayers/Format/SOSCapabilities/v1_0_0.js

    r9897 r10751  
    117117                    procedures: [],
    118118                    featureOfInterestIds: [],
     119                    observedProperties: [],
    119120                    responseFormats: [],
    120121                    resultModels: [],
     
    132133            },
    133134            "observedProperty": function(node, offering) {
    134                 offering.observedProperty = this.getAttributeNS(node,
    135                     this.namespaces.xlink, "href");
     135                offering.observedProperties.push(this.getAttributeNS(node,
     136                    this.namespaces.xlink, "href"));
    136137            },
    137138            "featureOfInterest": function(node, offering) {
  • sandbox/sonxurxo/sos/lib/OpenLayers/Format/SOSGetObservation.js

    r9900 r10751  
    3030        om: "http://www.opengis.net/om/1.0",
    3131        xlink: "http://www.w3.org/1999/xlink",
    32         xsi: "http://www.w3.org/2001/XMLSchema-instance"
     32        xsi: "http://www.w3.org/2001/XMLSchema-instance",
     33        sa: "http://www.opengis.net/sampling/1.0"
    3334    },
    3435
     
    8889            data = data.documentElement;
    8990        }
    90         var info = {measurements: []};
     91        var info = {measurements: [], observations: []};
    9192        this.readNode(data, info);
    9293        return info;
     
    104105    write: function(options) {
    105106        var node = this.writeNode("sos:GetObservation", options);
     107        node.setAttribute("xmlns:om", this.namespaces.om);
    106108        this.setAttributeNS(
    107109            node, this.namespaces.xsi,
     
    133135                this.readChildNodes(node, measurement);
    134136            },
     137            "Observation": function(node, observationCollection) {
     138                var observation = {};
     139                observationCollection.observations.push(observation);
     140                this.readChildNodes(node, observation);
     141            },
    135142            "samplingTime": function(node, measurement) {
    136143                var samplingTime = {};
     
    147154                    this.getAttributeNS(node, this.namespaces.xlink, "href");
    148155                this.readChildNodes(node, measurement);
     156            },
     157            "featureOfInterest": function(node, observation) {
     158                var foi = {};
     159                observation.fois = [];
     160                observation.fois.push(foi);
     161                this.readChildNodes(node, foi);
    149162            },
    150163            "result": function(node, measurement) {
     
    159172            }
    160173        },
     174        "sa": {
     175            "SamplingPoint": function(node, foi) {
     176                foi.id = this.getAttributeNS(node, this.namespaces.gml, "id");
     177                this.readChildNodes(node, foi);
     178            },
     179            "position" : function(node, foi) {
     180                this.readChildNodes(node, foi);
     181            }
     182        },
    161183        "gml": OpenLayers.Util.applyDefaults({
    162184            "TimeInstant": function(node, samplingTime) {
     
    167189            "timePosition": function(node, timeInstant) {
    168190                timeInstant.timePosition = this.getChildValue(node);
     191            },
     192            "FeatureCollection": function(node, foi) {
     193                this.readChildNodes(node, foi);
     194            },
     195            "featureMember": function(node, foi) {
     196                this.readChildNodes(node, foi);
    169197            }
    170198        }, OpenLayers.Format.GML.v3.prototype.readers.gml)
     
    187215                });
    188216                this.writeNode("offering", options, node);
    189                 this.writeNode("eventTime", options, node);
    190                 this.writeNode("procedure", options, node);
    191                 this.writeNode("observedProperty", options, node);
     217                if (options.eventTime) {
     218                    this.writeNode("eventTime", options, node);
     219                }
     220                for (var procedure in options.procedures) {
     221                    this.writeNode("procedure", options.procedures[procedure], node);
     222                }
     223                for (var observedProperty in options.observedProperties) {
     224                    this.writeNode("observedProperty", options.observedProperties[observedProperty], node);
     225                }
    192226                this.writeNode("responseFormat", options, node);
    193                 this.writeNode("resultModel", options, node);                               
    194                 this.writeNode("responseMode", options, node);
     227                if (options.resultModel) {
     228                    this.writeNode("resultModel", options, node);
     229                }
     230                if (options.responseMode) {
     231                    this.writeNode("responseMode", options, node);
     232                }
    195233                return node;
    196234            },
     
    199237                    {value: options.responseFormat});
    200238            },
    201             "procedure": function(options) {
     239            "procedure": function(procedure) {
    202240                return this.createElementNSPlus("procedure",
    203                     {value: options.procedure});
     241                    {value: procedure});
    204242            },
    205243            "offering": function(options) {
     
    207245                    options.offering});
    208246            },
    209             "observedProperty": function(options) {
     247            "observedProperty": function(observedProperty) {
    210248                return this.createElementNSPlus("observedProperty",
    211                     {value: options.observedProperty});
     249                    {value: observedProperty});
    212250            },
    213251            "eventTime": function(options) {
     
    252290                    {value: options.value});
    253291                return node;
     292            },
     293            "ObjectID": function(options) {
     294                return this.createElementNSPlus("ObjectID",
     295                    {value: options});
    254296            }
    255297        }
  • sandbox/sonxurxo/sos/lib/OpenLayers/Format/XML.js

    r9883 r10751  
    1 /* Copyright (c) 2006-2008 MetaCarta, Inc., published under the Clear BSD
    2  * license.  See http://svn.openlayers.org/trunk/openlayers/license.txt for the
     1/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for
     2 * full list of contributors). Published under the Clear BSD license. 
     3 * See http://svn.openlayers.org/trunk/openlayers/license.txt for the
    34 * full text of the license. */
    45
     
    181182     */
    182183    write: function(node) {
     184        // Checks if the node has any attribute with namespaceURI set to the
     185        // supplied parameter
     186        var hasAttributeWithNamespaceURI = function(node, namespaceURI) {
     187            for (var i = 0, len = node.attributes.length; i < len; i++) {
     188                if (node.attributes[i].namespaceURI && node.attributes[i].
     189                    namespaceURI === namespaceURI) {
     190                    return true;
     191                }
     192            }
     193            return false;
     194        }
     195        // Fixes #2819, adding the xmlns attributes for all namespaces in
     196        // the format.
     197        // Avoid duplicates : if node or any of its attributes has its
     198        // namespaceURI set to this.namespaces[alias], it will be wrote later
     199        // by node.setAttributeNS()
     200        for (var alias in this.namespaces) {
     201            if (!(node.namespaceURI && this.namespaces[alias] === node.namespaceURI) &&
     202                !hasAttributeWithNamespaceURI(node, this.namespaces[alias])) {
     203                node.setAttribute("xmlns:" + alias, this.namespaces[alias]);
     204            }
     205        }
     206           
    183207        var data;
    184208        if(this.xmldom) {
     
    244268    createTextNode: function(text) {
    245269        var node;
     270        if (typeof text !== "string") {
     271            text = String(text);
     272        }
    246273        if(this.xmldom) {
    247274            node = this.xmldom.createTextNode(text);
     
    569596        var value = options.value;
    570597        if(value != null) {
    571             if(typeof value == "boolean") {
    572                 value = String(value);
    573             }
    574598            node.appendChild(this.createTextNode(value));
    575599        }
Note: See TracChangeset for help on using the changeset viewer.