Exemple #1
0
 currentValue.map(function(val) {
   val = CQLUtils.generateFilter(undefined, 'anyGeo', val)
   if (val === undefined) {
     return val
   }
   return _.omit(
     CQLUtils.transformCQLToFilter(
       CQLUtils.transformFilterToCQL(val)
     ),
     ['property']
   )
 })
Exemple #2
0
    constructFilter: function () {
        var filters = [];
        var timeRange = this.basicTime.currentView.model.getValue()[0];
        var timeBefore, timeAfter, timeLast, timeUnit;
        switch (timeRange) {
            case 'before':
                timeBefore = this.basicTimeBefore.currentView.model.getValue()[0];
                break;
            case 'after':
                timeAfter = this.basicTimeAfter.currentView.model.getValue()[0];
                break;
            case 'between':
                timeBefore = this.basicTimeBetweenBefore.currentView.model.getValue()[0];
                timeAfter = this.basicTimeBetweenAfter.currentView.model.getValue()[0];
                break;
            case 'relative':
                timeLast = Math.floor(this.basicTimeRelativeValue.currentView.model.getValue()[0]);
                timeUnit = this.basicTimeRelativeUnit.currentView.model.getValue()[0];
                break;
        }
        if (timeBefore) {
            var timeFilter = {
                type: 'OR',
                filters: [
                    CQLUtils.generateFilter('BEFORE', 'created', timeBefore),
                    CQLUtils.generateFilter('BEFORE', 'modified', timeBefore),
                    CQLUtils.generateFilter('BEFORE', 'effective', timeBefore),
                    CQLUtils.generateFilter('BEFORE', 'metacard.created', timeBefore),
                    CQLUtils.generateFilter('BEFORE', 'metacard.modified', timeBefore)
                ]
            };
            filters.push(timeFilter);
        }
        if (timeAfter) {
            var timeFilter = {
                type: 'OR',
                filters: [
                    CQLUtils.generateFilter('AFTER', 'created', timeAfter),
                    CQLUtils.generateFilter('AFTER', 'modified', timeAfter),
                    CQLUtils.generateFilter('AFTER', 'effective', timeAfter),
                    CQLUtils.generateFilter('AFTER', 'metacard.created', timeAfter),
                    CQLUtils.generateFilter('AFTER', 'metacard.modified', timeAfter)
                ]
            };
            filters.push(timeFilter);
        }
        if (timeLast) {
            var duration;
            if (timeUnit === 'm' || timeUnit === 'h') {
                duration = "PT" + timeLast + timeUnit.toUpperCase();
            } else {
                duration = "P" + timeLast + timeUnit.toUpperCase();
            }

            var relativeFunction = 'RELATIVE(' + duration + ')';
            var timeDuration = {
                type: 'OR',
                filters: [
                    CQLUtils.generateFilter('=', 'created', relativeFunction),
                    CQLUtils.generateFilter('=', 'modified', relativeFunction),
                    CQLUtils.generateFilter('=', 'effective', relativeFunction),
                    CQLUtils.generateFilter('=', 'metacard.created', relativeFunction),
                    CQLUtils.generateFilter('=', 'metacard.modified', relativeFunction)
                ]
            };
            filters.push(timeDuration);
        }
        return filters;
    },
Exemple #3
0
    constructFilter: function () {
        // Determine which option is selected for altitude range
        var filters = [];
        var altitudeSelect = this.basicAltitude
            .currentView.model.getValue()[0];
        var altitudeUnit = this.basicAltitudeUnits.currentView.model.getValue()[0];

        switch (altitudeSelect) {
            // Build filters for altitude
            case 'above':
                // Handle Above altitude selected
                var aboveAltitude = parseFloat(
                this.basicAltitudeAbove.currentView.model.getValue()[0]);

                aboveAltitude = DistanceUtils.getDistanceInMeters(aboveAltitude, altitudeUnit);
                aboveAltitude = DistanceUtils.altitudeRound(aboveAltitude);

                var aboveAltitudeFilter = CQLUtils.generateFilter('>=',
                    'location.altitude-meters', aboveAltitude);
                filters.push(aboveAltitudeFilter);

                break;
            case 'below':
                // Handle Below altitude selected
                var belowAltitude = parseFloat(
                this.basicAltitudeBelow.currentView.model.getValue()[0]);

                belowAltitude = DistanceUtils.getDistanceInMeters(belowAltitude, altitudeUnit);
                belowAltitude = DistanceUtils.altitudeRound(belowAltitude);

                var belowAltitudeFilter = CQLUtils.generateFilter('<=',
                    'location.altitude-meters', belowAltitude);
                filters.push(belowAltitudeFilter);
                break;
            case 'between':
                // Handle between altitude selected

                var aboveAltitude = parseFloat(
                this.basicAltitudeBetweenAbove
                    .currentView.model.getValue()[0]);

                var belowAltitude = parseFloat(
                    this.basicAltitudeBetweenBelow
                    .currentView.model.getValue()[0]);

                aboveAltitude = DistanceUtils.getDistanceInMeters(aboveAltitude, altitudeUnit);
                aboveAltitude = DistanceUtils.altitudeRound(aboveAltitude);
                    
                belowAltitude = DistanceUtils.getDistanceInMeters(belowAltitude, altitudeUnit);
                belowAltitude = DistanceUtils.altitudeRound(belowAltitude);

                var aboveAltitudeFilter = CQLUtils.generateFilter('>=',
                    'location.altitude-meters', aboveAltitude);

                var belowAltitudeFilter = CQLUtils.generateFilter('<=',
                    'location.altitude-meters', belowAltitude);

                var altitudeFilters = {
                    type: "AND",
                    filters: [aboveAltitudeFilter, belowAltitudeFilter]
                };

                filters.push(altitudeFilters);
                break;
            case 'any':
            default:
                break;
        }
        return filters;
    },