Changeset 4394


Ignore:
Timestamp:
29/10/08 14:18:23 (11 years ago)
Author:
domlowe
Message:

Minor changes to 2.0.0

Location:
cows/trunk/cows
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • cows/trunk/cows/model/filterencoding.py

    r4354 r4394  
    8282class PropertyIsBetween(Filter): 
    8383    def evaluate(self, featureset): 
    84         #TODO finish property between 
     84        #TODO finish property between         
    8585        lowerbound=upperbound=propertyname=None 
     86        for child in self.elem.getchildren(): 
     87            log.debug(child.tag) 
     88            if child.tag == OGC('PropertyName'): 
     89                propertyname=child.text 
     90            elif child.tag == OGC('LowerBoundary'): 
     91                lowerbound=child.getchildren()[0].text 
     92            elif child.tag == OGC('UpperBoundary'): 
     93                upperbound=child.getchildren()[0].text 
    8694        resultset=set(featureset.getFeaturesByPropertyBetween(propertyname, lowerbound, upperbound)) 
    8795        return resultset 
     
    114122        elif filterelem.tag ==OGC('PropertyIsEqualTo'): 
    115123            f=PropertyIsEqualTo(filterelem) 
     124        elif filterelem.tag ==OGC('PropertyIsBetween'): 
     125            f=PropertyIsBetween(filterelem) 
    116126        log.debug('Filter tag = %s'%filterelem.tag) 
    117127        return f 
  • cows/trunk/cows/pylons/templates/wfs_capabilities_2_0_0.xml

    r4376 r4394  
    140140      </FeatureType> 
    141141    </FeatureTypeList>  
    142         <!-- TODO, Filter_Capabilities should be configurable --> 
    143                 <fes:Filter_Capabilities> 
     142        <!-- TODO, Filter_Capabilities -->               
     143        <fes:Filter_Capabilities> 
     144                <fes:Id_Capabilities> 
     145                                <fes:ResourceIdentifier name="blah"/> 
     146                </fes:Id_Capabilities> 
    144147                <fes:Spatial_Capabilities> 
    145148                        <fes:GeometryOperands> 
    146                                 <fes:GeometryOperand>gml:Envelope</fes:GeometryOperand> 
     149                                <fes:GeometryOperand name="blah2"/> 
    147150                        </fes:GeometryOperands> 
    148151                        <fes:SpatialOperators> 
     
    150153                        </fes:SpatialOperators> 
    151154                </fes:Spatial_Capabilities> 
    152                 <fes:Scalar_Capabilities> 
    153                         <fes:LogicalOperators></fes:LogicalOperators> 
    154                         <fes:ComparisonOperators><fes:ComparisonOperator>Between</fes:ComparisonOperator></fes:ComparisonOperators> 
    155                 </fes:Scalar_Capabilities> 
    156                  
    157                 <fes:Id_Capabilities> 
    158                         <fes:FID/>               
    159                 </fes:Id_Capabilities> 
    160         </fes:Filter_Capabilities>               
     155                <fes:Temporal_Capabilities> 
     156                        <fes:TemporalOperands> 
     157                                <fes:TemporalOperand name="blah3"/> 
     158                        </fes:TemporalOperands> 
     159                        <fes:TemporalOperators> 
     160                                <fes:TemporalOperator name="After"/> 
     161                        </fes:TemporalOperators> 
     162                </fes:Temporal_Capabilities>             
     163        </fes:Filter_Capabilities> 
    161164</WFS_Capabilities> 
  • cows/trunk/cows/pylons/wfs_controller.py

    r4344 r4394  
    4141    service = 'WFS' 
    4242    owsOperations = (ows_controller.OWSController.owsOperations + ['DescribeFeatureType', 'GetFeature']) 
    43     validVersions = ['1.1.0'] 
     43    validVersions = ['1.1.0', '2.0.0'] 
     44     
    4445 
    4546    #------------------------------------------------------------------------- 
     
    6869        if version == '1.1.0': 
    6970            t = ows_controller.templateLoader.load('wfs_capabilities_1_1_0.xml') 
     71        elif version == '2.0.0': 
     72            t = ows_controller.templateLoader.load('wfs_capabilities_2_0_0.xml') 
    7073        else: 
    7174            # We should never get here!  The framework should raise an exception before now. 
  • cows/trunk/cows/service/imps/csmlbackend/wfs_csmllayer.py

    r4359 r4394  
    127127        return result 
    128128 
    129      
    130     def getFeaturesByTemporalRange(self, range): 
    131         #TODO: getFeaturesByTemporalRange 
    132         return [] 
    133      
     129    def getFeaturesByPropertyBetween(self, propertyname, minvalue, maxvalue): 
     130        log.debug('GET FEATURES BY PropertyBetween') 
     131        log.debug('propertyname, min, max: %s, %s, %s'%(propertyname, minvalue, maxvalue)) 
     132        result = [] 
     133        #Identifies times overlapping between filter and feature times 
     134        if propertyname=='csml:value/csml:PointSeriesCoverage/csml:pointSeriesDomain/csml:TimeSeries/csml:timePositionList': 
     135            for featureid, feature in self.featureinstances.iteritems(): 
     136                featuretimes=feature._feature.value.pointSeriesDomain.timePositionList.CONTENT.split() 
     137                featureMinTime=featuretimes[0] 
     138                featureMaxTime=featuretimes[len(featuretimes)-1] 
     139                if csml.csmllibs.csmltime.compareTimes(featureMinTime, minvalue ,featureMaxTime) == 1: 
     140                    result.append(feature) 
     141                elif csml.csmllibs.csmltime.compareTimes(featureMinTime, maxvalue ,featureMaxTime) == 1: 
     142                    result.append(feature)     
     143        return result 
     144         
    134145    def getFeaturesByPropertyEqualTo(self, propertyname, value): 
    135146        log.debug('GET FEATURES BY PropertyEqualTo') 
Note: See TracChangeset for help on using the changeset viewer.