OpenLayers OpenLayers

Changeset 4303

Show
Ignore:
Timestamp:
09/14/07 18:07:21 (1 year ago)
Author:
jachym
Message:

fixed gml bug

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • sandbox/jachym/openlayers/lib/OpenLayers/Control/WPS.js

    r4300 r4303  
    727727        //FIXME: this is made for OpenLayers.Layer.Vector only 
    728728        //FIXME: this should be done using some DOM functions :-/ 
    729         var s = new XMLSerializer(); 
    730  
    731729 
    732730        // formulate execute request 
     
    754752                    var data = g.write(layer.features); 
    755753                    this.WPS.executeRequest +="<wps:ComplexValue>"; 
    756                     this.WPS.executeRequest += s.serializeToString(data); 
     754                    this.WPS.executeRequest += data.toString(); 
    757755                    this.WPS.executeRequest += "</wps:ComplexValue>"; 
    758756 
     
    804802 
    805803    parseExecuteResponse: function(response) { 
    806         var g =  new OpenLayers.Format.GML(); 
    807         var outputGML = response.responseXML.getElementsByTagName("ComplexValue")[0].firstChild; 
    808         var s = new XMLSerializer(); 
    809  
    810         // Create div and textarea for output 
    811         // print arrived GML 
    812         div = document.createElement("div"); 
    813         div.appendChild(document.createTextNode("Before import to OL:")); 
    814         div.appendChild(document.createElement("br")); 
    815         textarea = document.createElement("textarea"); 
    816         textarea.cols = 50; 
    817         textarea.rows = 20; 
    818         div.appendChild(textarea); 
    819         document.getElementsByTagName("body")[0].appendChild(div); 
    820         textarea.innerHTML = s.serializeToString(outputGML); 
    821  
    822         // get GML features 
    823         var features = g.read(s.serializeToString(outputGML)); 
    824         var title = this.describeProcessDocument.getElementsByTagName("Title")[0].firstChild.nodeValue; 
    825  
    826         // add new layer, add features, redraw 
    827         var processLayer = new OpenLayers.Layer.Vector(title+" (WPS)"); 
    828         this.map.addLayer(processLayer); 
    829         processLayer.addFeatures(features); 
    830         processLayer.redraw(); 
    831          
    832         // Create div and textarea for output,  
    833         // convert all features to GML 
    834         div = document.createElement("div"); 
    835         div.appendChild(document.createTextNode("After import to OL:")); 
    836         div.appendChild(document.createElement("br")); 
    837         data = g.write(processLayer.features); 
    838         textarea = document.createElement("textarea"); 
    839         textarea.cols = 50; 
    840         textarea.rows = 20; 
    841         textarea.innerHTML = s.serializeToString(data); 
    842         div.appendChild(textarea); 
    843         document.getElementsByTagName("body")[0].appendChild(div); 
     804 
     805        var outputs = response.responseXML.getElementsByTagName("Output"); 
     806 
     807        for (var i = 0; i < outputs.length; i++) { 
     808 
     809            var title = this.describeProcessDocument.getElementsByTagName("Title")[0].firstChild.nodeValue; 
     810            title += ": "+outputs[i].getElementsByTagName("Title")[0].firstChild.nodeValue; 
     811             
     812            /*  
     813             * complexvalue reference output 
     814             */ 
     815            if (outputs[i].getElementsByTagName("ComplexValueReference").length > 0) { 
     816 
     817                // add new layer, add features, redraw 
     818                var processLayer = new OpenLayers.Layer.GML(title,  
     819                        outputs[i].getElementsByTagName("ComplexValueReference")[0].getAttribute("reference")); 
     820                this.map.addLayer(processLayer); 
     821                processLayer.redraw(); 
     822            } 
     823            /*  
     824             * complexvalue output 
     825             */ 
     826            else if (outputs[i].getElementsByTagName("ComplexValue").length > 0) { 
     827                var g =  new OpenLayers.Format.GML(); 
     828                var outputGML = outputs[i].getElementsByTagName("ComplexValue")[0].firstChild; 
     829 
     830                // get GML features 
     831                var features = g.parseFeature(outputGML); 
     832 
     833                // add new layer, add features, redraw 
     834                var processLayer = new OpenLayers.Layer.Vector(title); 
     835                this.map.addLayer(processLayer); 
     836                processLayer.addFeatures(features); 
     837                processLayer.redraw(); 
     838            } 
     839            /* 
     840             * literal output  
     841             */ 
     842            else if (outputs[i].getElementsByTagName("LiteralValue").length > 0) { 
     843                var outDiv = OpenLayers.getElement("wpsLiteralOutput"); 
     844                outDiv.appendChild( 
     845                        document.createTextNode( 
     846                                outputs[i].getElementsByTagName("LiteralValue")[0].firstChild.nodeValue)); 
     847            } 
     848            /*  
     849             * bbox output  
     850             */ 
     851            else { 
     852            } 
     853        } 
    844854         
    845855    },