/** * The controller for the routing directive. * * @hidden */ export class Controller { /** * @param {angular.IScope} $scope Scope. * @param {import('ngeo/routing/RoutingService').RoutingService} ngeoRoutingService service for OSRM * routing. * @param {import('ngeo/routing/NominatimService').NominatimService} ngeoNominatimService service for * Nominatim. * @param {angular.IQService} $q Angular q service * @param {import('ngeo/misc/debounce').miscDebounce} ngeoDebounce ngeo Debounce * service. * @param {import('ngeo/options').ngeoRoutingOptions} ngeoRoutingOptions The options. */ constructor($scope: angular.IScope, ngeoRoutingService: import("ngeo/routing/RoutingService").RoutingService, ngeoNominatimService: import("ngeo/routing/NominatimService").NominatimService, $q: angular.IQService, ngeoDebounce: import("ngeo/misc/debounce").miscDebounce<() => void>, ngeoRoutingOptions: import("ngeo/options").ngeoRoutingOptions); /** * @type {angular.IScope} * @private */ private $scope_; /** * @type {import('ngeo/routing/RoutingService').RoutingService} * @private */ private ngeoRoutingService_; /** * @type {import('ngeo/routing/NominatimService').NominatimService} * @private */ private ngeoNominatimService_; /** * @type {import('ngeo/options').ngeoRoutingOptions} * @private */ private routingOptions_; /** * Available routing profiles. * Example: [ * { * label: 'Car', // used as label in the UI * profile: 'routed-car' // used as part of the query * } * ] * * @type {import('ngeo/options').RoutingProfile[]} */ routingProfiles: import("ngeo/options").RoutingProfile[]; /** * @type {?import('ngeo/options').RoutingProfile} */ selectedRoutingProfile: import("ngeo/options").RoutingProfile | null; /** * @type {angular.IQService} * @private */ private $q_; /** * @type {?import('ol/Map').default} */ map: import("ol/Map").default | null; /** * @type {string} */ errorMessage: string; /** * @type {?olFeature} */ startFeature_: olFeature | null; /** * @type {?olFeature} */ targetFeature_: olFeature | null; /** * @type {RoutingVia[]} */ viaArray: RoutingVia[]; /** * @type {Object} */ colors: { [x: string]: string; }; /** * @type {import('ol/source/Vector').default} * @private */ private routeSource_; /** * @type {import('ol/layer/Vector').default>} * @private */ private routeLayer_; /** * Distance of route in meters * * @type {number} */ routeDistance: number; /** * Duration of route in minutes. * * @type {?number} */ routeDuration: number | null; /** * @type {RegExp} * @private */ private regexIsFormattedCoord; /** * @type {?import('ol/interaction/Draw').default} * @private */ private draw_; /** * Debounced because in some cases (reverse route) multiple changes are done * at once and spam this function. * * @type {function(): void} */ handleChange: () => void; /** * Init the controller */ $onInit(): void; /** * Clears start, end and vias. Removes features from map. */ clearRoute(): void; /** * Converts feature point into LonLat coordinate. * * @param {olFeature} point Feature point to convert * @returns {?import('ol/coordinate').Coordinate} LonLat coordinate * @private */ private getLonLatFromPoint_; /** * Flip start and target and re-calculate route. */ reverseRoute(): void; /** * @param {import('./RoutingService').Route} route Routes of OSRM response * @returns {olFeature[]} parsed route features * @private */ private parseRoute_; /** */ calculateRoute(): void; /** */ addVia(): void; /** * @param {number} index Array index. */ deleteVia(index: number): void; } export namespace Controller { let $inject: string[]; } export default myModule; export type RoutingVia = { feature?: olFeature; onSelect?: (arg0: import("ngeo/routing/NominatimService").NominatimSearchResult) => void; }; import olFeature from 'ol/Feature'; import angular from 'angular'; /** * @typedef {Object} RoutingVia * @property {olFeature} [feature] * @property {function(import('ngeo/routing/NominatimService').NominatimSearchResult): void} [onSelect] */ /** * @type {angular.IModule} * @hidden */ declare const myModule: angular.IModule;