@razi91/types-ol-ext
Version:
Type definitions for ol-ext
139 lines (134 loc) • 5.42 kB
TypeScript
import ol_control_Control from 'ol/control/Control';
import { Feature, Map as _ol_Map_ } from 'ol';
import { Coordinate } from 'ol/coordinate';
export interface Options {
className?: string;
title?: string
target?: Element | string;
label: string;
placeholder: string;
inputLabel?: string;
collapsed?: boolean;
noCollapse?: boolean;
typing?: number;
minLength?: number;
maxItems?: number;
maxHistory?: number;
getTitle?: (f: Feature) => string;
autocomplete?: (s: String, cback: ([])) => [] | false;
onSelect: (...params: any[]) => any;
centerOnSelect?: boolean
zoomOnSelect?: (...params: any[]) => any;
}
/**
* Search Control.
* This is the base class for search controls. You can use it for simple custom search or as base to new class.
* @see ol_control_SearchFeature
* @see ol_control_SearchPhoton
*
* @constructor
* @extends {ol_control_Control}
* @fires select
* @fires change:input
* @param {Object=} options
* @param {string} options.className control class name
* @param {Element | string | undefined} options.target Specify a target if you want the control to be rendered outside of the map's viewport.
* @param {string | undefined} options.title Title to use for the search button tooltip, default "Search"
* @param {string | undefined} options.reverseTitle Title to use for the reverse geocoding button tooltip, default "Click on the map..."
* @param {string | undefined} options.placeholder placeholder, default "Search..."
* @param {boolean | undefined} options.reverse enable reverse geocoding, default false
* @param {string | undefined} options.inputLabel label for the input, default none
* @param {string | undefined} options.collapsed search is collapsed on start, default true
* @param {string | undefined} options.noCollapse prevent collapsing on input blur, default false
* @param {number | undefined} options.typing a delay on each typing to start searching (ms) use -1 to prevent autocompletion, default 300.
* @param {integer | undefined} options.minLength minimum length to start searching, default 1
* @param {integer | undefined} options.maxItems maximum number of items to display in the autocomplete list, default 10
* @param {integer | undefined} options.maxHistory maximum number of items to display in history. Set -1 if you don't want history, default maxItems
* @param {function} options.getTitle a function that takes a feature and return the name to display in the index.
* @param {function} options.autocomplete a function that take a search string and callback function to send an array
* @param {function} options.onselect a function called when a search is selected
* @param {boolean} options.centerOnSelect center map on search, default false
* @param {number|boolean} options.zoomOnSelect center map on search and zoom to value if zoom < value, default false
*/
export default class Search extends ol_control_Control {
constructor(options?: Options);
/**
* Remove the control from its current map and attach it to the new map.
* Subclasses may set up event handlers to get notified about changes to
* the map here.
* @param {ol.Map} map Map.
* @api stable
*/
setMap(map: _ol_Map_): void
/** Collapse the search
* @param {boolean} [b=true]
* @api
*/
collapse(b: boolean): void
/** Get the input field
* @return {Element}
* @api
*/
getInputField(): Element;
/** Returns the text to be displayed in the menu
* @param {any} f feature to be displayed
* @return {string} the text to be displayed in the index, default f.name
* @api
*/
getTitle(f: Feature): string;
/** Returns title as text
* @param {any} f feature to be displayed
* @return {string}
* @api
*/
/** Force search to refresh
*/
search(): void;
/** Reverse geocode
* @param {ol.coordinate} coord
* @param {function | undefined} cback a callback function, default trigger a select event
* @api
*/
reverseGeocode(coord: Coordinate, cback: (...params: any[]) => void): void
/** Set the input value in the form (for initialisation purpose)
* @param {string} value
* @param {boolean} search to start a search
* @api
*/
setInput(value: string, search: boolean): void;
/** A line has been clicked in the menu > dispatch event
* @param {any} f the feature, as passed in the autocomplete
* @param {boolean} reverse true if reverse geocode
* @param {ol.coordinate} coord
* @param {*} options options passed to the event
* @api
*/
select(f: Feature, reverse: boolean, coord: Coordinate, options?: any): void
/** Save history (in the localstorage)
*/
saveHistory(): void;
/** Restore history (from the localstorage)
*/
restoreHistory(): void;
/**
* Remove previous history
*/
clearHistory(): void;
/**
* Get history table
*/
getHistory(): [] | any;
/** Autocomplete function
* @param {string} s search string
* @param {function} cback a callback function that takes an array to display in the autocomplete field (for asynchronous search)
* @return {Array|false} an array of search solutions or false if the array is send with the cback argument (asnchronous)
* @api
*/
autocomplete(s: string, cback: ([])=> any ): any[] | false;
/** Test if 2 features are equal
* @param {any} f1
* @param {any} f2
* @return {boolean}
*/
equalFeatures(f1: Feature, f2: Feature): boolean;
}