OpenLayers OpenLayers

Changeset 7114

Show
Ignore:
Timestamp:
05/08/08 17:19:48 (3 months ago)
Author:
sbenthall
Message:

Format.GML handles rectangles like a mofo

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • sandbox/vector-behavior/lib/OpenLayers/Format/GML.js

    r7110 r7114  
    811811            } 
    812812            return gml; 
     813        }, 
     814 
     815        /** 
     816         * Method: buildGeometry.rectangle 
     817         * Given an OpenLayers rectangle geometry, create a GML box. 
     818         * 
     819         * Parameters: 
     820         * geometry - {<OpenLayers.Geometry.Rectangle>} A rectangle 
     821         *     geometry. 
     822         * 
     823         * Returns: 
     824         * {DOMElement} A GML box node. 
     825         */ 
     826        rectangle: function(geometry) { 
     827            var gml = this.createElementNS(this.gmlns, "gml:Box"); 
     828            gml.appendChild(this.buildCoordinatesNode(geometry)); 
     829            return gml; 
    813830        } 
    814831    }, 
     
    832849        coordinatesNode.setAttribute("cs", ","); 
    833850        coordinatesNode.setAttribute("ts", " "); 
    834          
    835         var points = (geometry.components) ? geometry.components : [geometry]; 
     851        
    836852        var parts = []; 
    837         for(var i=0; i<points.length; i++) { 
    838             parts.push(points[i].x + "," + points[i].y); 
     853        if (geometry instanceof OpenLayers.Geometry.Rectangle) { 
     854            parts.push(geometry.x + "," + geometry.y); 
     855            parts.push((geometry.x + geometry.width) + "," +  
     856                (geometry.y + geometry.height)); 
     857        } else {  
     858            var points = (geometry.components) ? geometry.components :  
     859                [geometry]; 
     860            for(var i=0; i<points.length; i++) { 
     861                parts.push(points[i].x + "," + points[i].y); 
     862            } 
    839863        } 
    840864