geostyler
Version:
Framework for styling geodata
101 lines (100 loc) • 3.91 kB
TypeScript
import { Filter, ComparisonFilter, Rule, CombinationFilter, NegationFilter, CombinationOperator } from 'geostyler-style';
import { VectorData } from 'geostyler-data';
import { Feature } from 'geojson';
export type CountResult = {
counts?: number[];
duplicates?: number[];
};
/**
* @class FilterUtil
*/
declare class FilterUtil {
static nestingOperators: string[];
/**
* Handle nested filters.
*/
static handleNestedFilter: (filter: CombinationFilter | NegationFilter, feature: any) => boolean;
/**
* Handle simple filters, i.e. non-nested filters.
*/
static handleSimpleFilter: (filter: ComparisonFilter, feature: any) => boolean;
/**
* Checks if a feature matches the specified filter.
* Returns true if it matches, otherwise returns false.
*/
static featureMatchesFilter: (filter: Filter | CombinationOperator, feature: Feature) => boolean;
/**
* Returns those features that match a given filter.
* If no feature matches, returns an empty array.
*
* @param {Filter} filter A geostyler filter object.
* @param {VectorData} data A geostyler data object.
* @return {Feature[]} An Array of geojson feature objects.
*/
static getMatches: (filter: Filter, data: VectorData) => Feature[];
/**
* Calculates the number of features that are covered by more than one rule per
* rule.
*
* @param {object} matches An object containing the count of matches for every
* filter. Separated by scales.
* @returns {number[]} An array containing the number of duplicates for each
* rule.
*/
static calculateDuplicates(matches: any): number[];
/**
* Calculates the amount of matched and duplicate matched features for the rules.
*
* @param {Rule[]} rules An array of GeoStyler rule objects.
* @param {VectorData} data A geostyler data object.
* @returns {CountResult} An object containing array with the amount of matched
* and duplicate matched features reachable through keys'counts' and 'duplicates'.
*/
static calculateCountAndDuplicates(rules: Rule[], data: VectorData): CountResult;
/**
* Transforms a position String like '[2][3]' to an positionArray like [2, 3].
*/
static positionStringAsArray(positionString: string): number[];
/**
* Transforms am positionArray like [2, 3] to a string like '[2][3]'.
*/
static positionArrayAsString(positionArray: number[] | string[]): string;
/**
* Returns the filter at a specific position.
*/
static getFilterAtPosition(rootFilter: Filter, position: string): any;
/**
* Removes a subfilter from a given filter at the given position.
*/
static removeAtPosition(filter: Filter, position: string): Filter;
/**
* Inserts a given subfilter to a given parentfilter by its position and its
* dropPosition.
*/
static insertAtPosition(baseFilter: Filter, insertFilter: Filter, position: string): Filter;
/**
* Handler for the add button.
* Adds a filter of a given type at the given position.
*
*/
static addFilter(rootFilter: Filter, position: string, type: string): ComparisonFilter | NegationFilter | CombinationFilter;
/**
* Changes a filter at a position to a given typ.
*
*/
static changeFilter(rootFilter: Filter, position: string, type: string): ComparisonFilter | NegationFilter | CombinationFilter;
/**
* Removes a filter at a given position.
*
*/
static removeFilter: (rootFilter: Filter, position: string) => Filter;
/**
* Helper method for FilterUtil.filterToTree().
*/
static filterToTreeHelper: (filter: Filter) => any;
/**
* Maps a GeoStyler filter to an antd treeData object.
*/
static filterToTree: (filter: Filter) => any[];
}
export default FilterUtil;