mobility-toolbox-js 3.0.0-beta.7 → 3.0.0-beta.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/HttpAPI.d.ts +31 -0
- package/api/RealtimeAPI.d.ts +359 -0
- package/api/RealtimeAPI.js +96 -89
- package/api/RoutingAPI.d.ts +37 -0
- package/api/StopsAPI.d.ts +38 -0
- package/api/WebSocketAPI.d.ts +153 -0
- package/api/index.d.ts +3 -0
- package/api/typedefs.d.ts +178 -0
- package/common/controls/StopFinderControlCommon.d.ts +53 -0
- package/common/index.d.ts +2 -0
- package/common/mixins/RealtimeLayerMixin.d.ts +273 -0
- package/common/styles/index.d.ts +4 -0
- package/common/styles/realtimeDefaultStyle.d.ts +36 -0
- package/common/styles/realtimeDelayStyle.d.ts +12 -0
- package/common/styles/realtimeHeadingStyle.d.ts +12 -0
- package/common/styles/realtimeSimpleStyle.d.ts +4 -0
- package/common/typedefs.d.ts +212 -0
- package/common/utils/compareDepartures.d.ts +10 -0
- package/common/utils/constants.d.ts +5 -0
- package/common/utils/createCanvas.d.ts +10 -0
- package/common/utils/createDefaultCopyrightElt.d.ts +5 -0
- package/common/utils/createDefaultStopFinderElt.d.ts +5 -0
- package/common/utils/createRealtimeFilters.d.ts +12 -0
- package/common/utils/debounceDeparturesMessages.d.ts +12 -0
- package/common/utils/debounceWebsocketMessages.d.ts +11 -0
- package/common/utils/getLayersAsFlatArray.d.ts +3 -0
- package/common/utils/getLayersAsFlatArray.js +5 -1
- package/common/utils/getMapGlCopyrights.d.ts +17 -0
- package/common/utils/getRealtimeModeSuffix.d.ts +9 -0
- package/common/utils/getUrlWithParams.d.ts +8 -0
- package/common/utils/getVehiclePosition.d.ts +16 -0
- package/common/utils/index.d.ts +16 -0
- package/common/utils/realtimeConfig.d.ts +64 -0
- package/common/utils/removeDuplicate.d.ts +9 -0
- package/common/utils/renderTrajectories.d.ts +16 -0
- package/common/utils/sortAndFilterDepartures.d.ts +15 -0
- package/common/utils/sortByDelay.d.ts +3 -0
- package/common/utils/timeUtils.d.ts +23 -0
- package/common/utils/toMercatorExtent.d.ts +5 -0
- package/iife.d.ts +2 -0
- package/index.d.ts +9 -0
- package/maplibre/controls/CopyrightControl.d.ts +35 -0
- package/maplibre/controls/index.d.ts +1 -0
- package/maplibre/index.d.ts +5 -0
- package/maplibre/layers/Layer.d.ts +28 -0
- package/maplibre/layers/RealtimeLayer.d.ts +160 -0
- package/maplibre/layers/RealtimeLayer.js +2 -2
- package/maplibre/layers/index.d.ts +2 -0
- package/maplibre/utils/getMercatorResolution.d.ts +7 -0
- package/maplibre/utils/getSourceCoordinates.d.ts +7 -0
- package/maplibre/utils/index.d.ts +2 -0
- package/mbt.js +137 -114
- package/mbt.js.map +3 -3
- package/mbt.min.js +13 -13
- package/mbt.min.js.map +3 -3
- package/ol/controls/CopyrightControl.d.ts +31 -0
- package/ol/controls/CopyrightControl.js +18 -8
- package/ol/controls/RoutingControl.d.ts +209 -0
- package/ol/controls/RoutingControl.js +3 -0
- package/ol/controls/StopFinderControl.d.ts +37 -0
- package/ol/controls/StopFinderControl.js +3 -0
- package/ol/controls/index.d.ts +3 -0
- package/ol/index.d.ts +6 -0
- package/ol/layers/MapGlLayer.d.ts +144 -0
- package/ol/layers/MapGlLayer.js +3 -1
- package/ol/layers/MaplibreLayer.d.ts +63 -0
- package/ol/layers/MaplibreStyleLayer.d.ts +235 -0
- package/ol/layers/MaplibreStyleLayer.js +1 -1
- package/ol/layers/RealtimeLayer.d.ts +285 -0
- package/ol/layers/RealtimeLayer.js +13 -7
- package/ol/layers/index.d.ts +3 -0
- package/ol/mixins/MobilityLayerMixin.d.ts +98 -0
- package/ol/mixins/MobilityLayerMixin.js +1 -4
- package/ol/mixins/PropertiesLayerMixin.d.ts +127 -0
- package/ol/mixins/PropertiesLayerMixin.js +5 -4
- package/ol/renderers/MaplibreLayerRenderer.d.ts +20 -0
- package/ol/renderers/MaplibreStyleLayerRenderer.d.ts +20 -0
- package/ol/renderers/RealtimeLayerRenderer.d.ts +22 -0
- package/ol/renderers/RealtimeLayerRenderer.js +9 -9
- package/ol/styles/fullTrajectoryDelayStyle.d.ts +6 -0
- package/ol/styles/fullTrajectoryStyle.d.ts +5 -0
- package/ol/styles/index.d.ts +3 -0
- package/ol/styles/routingStyle.d.ts +4 -0
- package/ol/utils/getFeatureInfoAtCoordinate.d.ts +8 -0
- package/ol/utils/getFeatureInfoAtCoordinate.js +1 -1
- package/ol/utils/index.d.ts +1 -0
- package/package.json +1 -1
- package/setupTests.d.ts +1 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { Layer } from 'ol/layer';
|
|
2
|
+
import { PropertiesLayerMixinOptions } from './PropertiesLayerMixin';
|
|
3
|
+
export type MobilityLayerOptions = PropertiesLayerMixinOptions & {
|
|
4
|
+
[x: string]: any;
|
|
5
|
+
};
|
|
6
|
+
type GConstructor<T = {}> = new (...args: any[]) => T;
|
|
7
|
+
export type Layerable = GConstructor<Omit<Layer, keyof string>>;
|
|
8
|
+
declare function MobilityLayerMixin<TBase extends Layerable>(Base: TBase): {
|
|
9
|
+
new (...args: any[]): {
|
|
10
|
+
options?: PropertiesLayerMixinOptions | undefined;
|
|
11
|
+
olListenersKeys: import("ol/events").EventsKey[];
|
|
12
|
+
children: Layer<import("ol/source/Source").default, import("ol/renderer/Layer").default<any>>[];
|
|
13
|
+
get copyrights(): string;
|
|
14
|
+
set copyrights(newCopyrights: string | string[]);
|
|
15
|
+
disabled: boolean;
|
|
16
|
+
readonly group: string;
|
|
17
|
+
readonly hitTolerance: boolean;
|
|
18
|
+
readonly key: string;
|
|
19
|
+
readonly map: import("ol/Map").default;
|
|
20
|
+
readonly name: string;
|
|
21
|
+
olLayer: Layer<import("ol/source/Source").default, import("ol/renderer/Layer").default<any>>;
|
|
22
|
+
parent: Layer<import("ol/source/Source").default, import("ol/renderer/Layer").default<any>>;
|
|
23
|
+
visible: boolean;
|
|
24
|
+
setMapInternal: ((map: import("ol/Map").default) => void) & ((map: import("ol/Map").default | null) => void);
|
|
25
|
+
onChildrenChange(oldValue: Layer<import("ol/source/Source").default, import("ol/renderer/Layer").default<any>>[]): void;
|
|
26
|
+
attachToMap(map: import("ol/Map").default): void;
|
|
27
|
+
detachFromMap(): void;
|
|
28
|
+
flat(): any[];
|
|
29
|
+
addEventListener: (type: string, listener: import("ol/events").Listener) => void;
|
|
30
|
+
removeEventListener: (type: string, listener: import("ol/events").Listener) => void;
|
|
31
|
+
on: import("ol/layer/Layer").LayerOnSignature<import("ol/events").EventsKey>;
|
|
32
|
+
render: (frameState: import("ol/Map").FrameState | null, target: HTMLElement) => HTMLElement | null;
|
|
33
|
+
once: import("ol/layer/Layer").LayerOnSignature<import("ol/events").EventsKey>;
|
|
34
|
+
un: import("ol/layer/Layer").LayerOnSignature<void>;
|
|
35
|
+
getSource: () => import("ol/source/Source").default | null;
|
|
36
|
+
getRenderSource: () => import("ol/source/Source").default | null;
|
|
37
|
+
getFeatures: (pixel: import("ol/pixel").Pixel) => Promise<import("ol/Feature").FeatureLike[]>;
|
|
38
|
+
getData: (pixel: import("ol/pixel").Pixel) => Float32Array | Uint8ClampedArray | Uint8Array | DataView | null;
|
|
39
|
+
isVisible: (view?: import("ol/View").default | import("ol/View").ViewStateLayerStateExtent | undefined) => boolean;
|
|
40
|
+
getAttributions: (view?: import("ol/View").default | import("ol/View").ViewStateLayerStateExtent | undefined) => string[];
|
|
41
|
+
unrender: () => void;
|
|
42
|
+
getDeclutter: () => string;
|
|
43
|
+
renderDeclutter: (frameState: import("ol/Map").FrameState, layerState: import("ol/layer/Layer").State) => void;
|
|
44
|
+
renderDeferred: (frameState: import("ol/Map").FrameState) => void;
|
|
45
|
+
getMapInternal: () => import("ol/Map").default | null;
|
|
46
|
+
setMap: (map: import("ol/Map").default | null) => void;
|
|
47
|
+
setSource: (source: import("ol/source/Source").default | null) => void;
|
|
48
|
+
getRenderer: () => import("ol/renderer/Layer").default<any> | null;
|
|
49
|
+
hasRenderer: () => boolean;
|
|
50
|
+
getBackground: () => false | import("ol/layer/Base").BackgroundColor;
|
|
51
|
+
getClassName: () => string;
|
|
52
|
+
getLayerState: (managed?: boolean | undefined) => import("ol/layer/Layer").State;
|
|
53
|
+
getLayersArray: (array?: Layer<import("ol/source/Source").default, import("ol/renderer/Layer").default<any>>[] | undefined) => Layer<import("ol/source/Source").default, import("ol/renderer/Layer").default<any>>[];
|
|
54
|
+
getLayerStatesArray: (states?: import("ol/layer/Layer").State[] | undefined) => import("ol/layer/Layer").State[];
|
|
55
|
+
getExtent: () => import("ol/extent").Extent | undefined;
|
|
56
|
+
getMaxResolution: () => number;
|
|
57
|
+
getMinResolution: () => number;
|
|
58
|
+
getMinZoom: () => number;
|
|
59
|
+
getMaxZoom: () => number;
|
|
60
|
+
getOpacity: () => number;
|
|
61
|
+
getSourceState: () => import("ol/source/Source").State;
|
|
62
|
+
getVisible: () => boolean;
|
|
63
|
+
getZIndex: () => number | undefined;
|
|
64
|
+
setBackground: (background?: import("ol/layer/Base").BackgroundColor | undefined) => void;
|
|
65
|
+
setExtent: (extent: import("ol/extent").Extent | undefined) => void;
|
|
66
|
+
setMaxResolution: (maxResolution: number) => void;
|
|
67
|
+
setMinResolution: (minResolution: number) => void;
|
|
68
|
+
setMaxZoom: (maxZoom: number) => void;
|
|
69
|
+
setMinZoom: (minZoom: number) => void;
|
|
70
|
+
setOpacity: (opacity: number) => void;
|
|
71
|
+
setVisible: (visible: boolean) => void;
|
|
72
|
+
setZIndex: (zindex: number) => void;
|
|
73
|
+
get: (key: string) => any;
|
|
74
|
+
getKeys: () => string[];
|
|
75
|
+
getProperties: () => {
|
|
76
|
+
[x: string]: any;
|
|
77
|
+
};
|
|
78
|
+
getPropertiesInternal: () => {
|
|
79
|
+
[x: string]: any;
|
|
80
|
+
} | null;
|
|
81
|
+
hasProperties: () => boolean;
|
|
82
|
+
notify: (key: string, oldValue: any) => void;
|
|
83
|
+
addChangeListener: (key: string, listener: import("ol/events").Listener) => void;
|
|
84
|
+
removeChangeListener: (key: string, listener: import("ol/events").Listener) => void;
|
|
85
|
+
set: (key: string, value: any, silent?: boolean | undefined) => void;
|
|
86
|
+
setProperties: (values: {
|
|
87
|
+
[x: string]: any;
|
|
88
|
+
}, silent?: boolean | undefined) => void;
|
|
89
|
+
unset: (key: string, silent?: boolean | undefined) => void;
|
|
90
|
+
changed: () => void;
|
|
91
|
+
getRevision: () => number;
|
|
92
|
+
dispatchEvent: (event: string | import("ol/events/Event").default) => boolean | undefined;
|
|
93
|
+
getListeners: (type: string) => import("ol/events").Listener[] | undefined;
|
|
94
|
+
hasListener: (type?: string | undefined) => boolean;
|
|
95
|
+
dispose: () => void;
|
|
96
|
+
};
|
|
97
|
+
} & TBase;
|
|
98
|
+
export default MobilityLayerMixin;
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import PropertiesLayerMixin from './PropertiesLayerMixin';
|
|
2
2
|
function MobilityLayerMixin(Base) {
|
|
3
|
-
return class extends PropertiesLayerMixin(Base) {
|
|
4
|
-
constructor(options = {}) {
|
|
5
|
-
super(options);
|
|
6
|
-
}
|
|
3
|
+
return class MobilityLayer extends PropertiesLayerMixin(Base) {
|
|
7
4
|
};
|
|
8
5
|
}
|
|
9
6
|
export default MobilityLayerMixin;
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { Layer } from 'ol/layer';
|
|
2
|
+
import { EventsKey } from 'ol/events';
|
|
3
|
+
import { Map } from 'ol';
|
|
4
|
+
import type { Options } from 'ol/layer/Layer';
|
|
5
|
+
import type { Layerable } from './MobilityLayerMixin';
|
|
6
|
+
export type PropertiesLayerMixinOptions = Options & {
|
|
7
|
+
key?: string;
|
|
8
|
+
name?: string;
|
|
9
|
+
group?: string;
|
|
10
|
+
copyrights?: string[];
|
|
11
|
+
children?: any[];
|
|
12
|
+
visible?: boolean;
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
hitTolerance?: number;
|
|
15
|
+
properties?: {
|
|
16
|
+
[x: string]: any;
|
|
17
|
+
};
|
|
18
|
+
map?: Map;
|
|
19
|
+
} & {
|
|
20
|
+
[x: string]: any;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* This mixin adds some properties to access ol custom properties easily.
|
|
24
|
+
*/
|
|
25
|
+
declare function PropertiesLayerMixin<TBase extends Layerable>(Base: TBase): {
|
|
26
|
+
new (...args: any[]): {
|
|
27
|
+
options?: PropertiesLayerMixinOptions | undefined;
|
|
28
|
+
olListenersKeys: EventsKey[];
|
|
29
|
+
children: Layer<import("ol/source/Source").default, import("ol/renderer/Layer").default<any>>[];
|
|
30
|
+
get copyrights(): string;
|
|
31
|
+
set copyrights(newCopyrights: string | string[]);
|
|
32
|
+
disabled: boolean;
|
|
33
|
+
readonly group: string;
|
|
34
|
+
readonly hitTolerance: boolean;
|
|
35
|
+
readonly key: string;
|
|
36
|
+
readonly map: Map;
|
|
37
|
+
readonly name: string;
|
|
38
|
+
olLayer: Layer<import("ol/source/Source").default, import("ol/renderer/Layer").default<any>>;
|
|
39
|
+
parent: Layer<import("ol/source/Source").default, import("ol/renderer/Layer").default<any>>;
|
|
40
|
+
visible: boolean;
|
|
41
|
+
setMapInternal(map: Map): void;
|
|
42
|
+
/** @private */
|
|
43
|
+
onChildrenChange(oldValue: Layer[]): void;
|
|
44
|
+
/**
|
|
45
|
+
* Initialize the layer with the map passed in parameters.
|
|
46
|
+
*
|
|
47
|
+
* @param {ol/Map~Map} map A map.
|
|
48
|
+
*/
|
|
49
|
+
attachToMap(map: Map): void;
|
|
50
|
+
/**
|
|
51
|
+
* Terminate what was initialized in init function. Remove layer, events...
|
|
52
|
+
*/
|
|
53
|
+
detachFromMap(): void;
|
|
54
|
+
/**
|
|
55
|
+
* Return the an array containing all the descendants of the layer in a flat array. Including the current layer.
|
|
56
|
+
*/
|
|
57
|
+
flat(): any[];
|
|
58
|
+
addEventListener: (type: string, listener: import("ol/events").Listener) => void;
|
|
59
|
+
removeEventListener: (type: string, listener: import("ol/events").Listener) => void;
|
|
60
|
+
on: import("ol/layer/Layer").LayerOnSignature<EventsKey>;
|
|
61
|
+
render: (frameState: import("ol/Map").FrameState | null, target: HTMLElement) => HTMLElement | null;
|
|
62
|
+
once: import("ol/layer/Layer").LayerOnSignature<EventsKey>;
|
|
63
|
+
un: import("ol/layer/Layer").LayerOnSignature<void>;
|
|
64
|
+
getSource: () => import("ol/source/Source").default | null;
|
|
65
|
+
getRenderSource: () => import("ol/source/Source").default | null;
|
|
66
|
+
getFeatures: (pixel: import("ol/pixel").Pixel) => Promise<import("ol/Feature").FeatureLike[]>;
|
|
67
|
+
getData: (pixel: import("ol/pixel").Pixel) => Float32Array | Uint8ClampedArray | Uint8Array | DataView | null;
|
|
68
|
+
isVisible: (view?: import("ol/View").default | import("ol/View").ViewStateLayerStateExtent | undefined) => boolean;
|
|
69
|
+
getAttributions: (view?: import("ol/View").default | import("ol/View").ViewStateLayerStateExtent | undefined) => string[];
|
|
70
|
+
unrender: () => void;
|
|
71
|
+
getDeclutter: () => string;
|
|
72
|
+
renderDeclutter: (frameState: import("ol/Map").FrameState, layerState: import("ol/layer/Layer").State) => void;
|
|
73
|
+
renderDeferred: (frameState: import("ol/Map").FrameState) => void;
|
|
74
|
+
getMapInternal: () => Map | null;
|
|
75
|
+
setMap: (map: Map | null) => void;
|
|
76
|
+
setSource: (source: import("ol/source/Source").default | null) => void;
|
|
77
|
+
getRenderer: () => import("ol/renderer/Layer").default<any> | null;
|
|
78
|
+
hasRenderer: () => boolean;
|
|
79
|
+
getBackground: () => false | import("ol/layer/Base").BackgroundColor;
|
|
80
|
+
getClassName: () => string;
|
|
81
|
+
getLayerState: (managed?: boolean | undefined) => import("ol/layer/Layer").State;
|
|
82
|
+
getLayersArray: (array?: Layer<import("ol/source/Source").default, import("ol/renderer/Layer").default<any>>[] | undefined) => Layer<import("ol/source/Source").default, import("ol/renderer/Layer").default<any>>[];
|
|
83
|
+
getLayerStatesArray: (states?: import("ol/layer/Layer").State[] | undefined) => import("ol/layer/Layer").State[];
|
|
84
|
+
getExtent: () => import("ol/extent").Extent | undefined;
|
|
85
|
+
getMaxResolution: () => number;
|
|
86
|
+
getMinResolution: () => number;
|
|
87
|
+
getMinZoom: () => number;
|
|
88
|
+
getMaxZoom: () => number;
|
|
89
|
+
getOpacity: () => number;
|
|
90
|
+
getSourceState: () => import("ol/source/Source").State;
|
|
91
|
+
getVisible: () => boolean;
|
|
92
|
+
getZIndex: () => number | undefined;
|
|
93
|
+
setBackground: (background?: import("ol/layer/Base").BackgroundColor | undefined) => void;
|
|
94
|
+
setExtent: (extent: import("ol/extent").Extent | undefined) => void;
|
|
95
|
+
setMaxResolution: (maxResolution: number) => void;
|
|
96
|
+
setMinResolution: (minResolution: number) => void;
|
|
97
|
+
setMaxZoom: (maxZoom: number) => void;
|
|
98
|
+
setMinZoom: (minZoom: number) => void;
|
|
99
|
+
setOpacity: (opacity: number) => void;
|
|
100
|
+
setVisible: (visible: boolean) => void;
|
|
101
|
+
setZIndex: (zindex: number) => void;
|
|
102
|
+
get: (key: string) => any;
|
|
103
|
+
getKeys: () => string[];
|
|
104
|
+
getProperties: () => {
|
|
105
|
+
[x: string]: any;
|
|
106
|
+
};
|
|
107
|
+
getPropertiesInternal: () => {
|
|
108
|
+
[x: string]: any;
|
|
109
|
+
} | null;
|
|
110
|
+
hasProperties: () => boolean;
|
|
111
|
+
notify: (key: string, oldValue: any) => void;
|
|
112
|
+
addChangeListener: (key: string, listener: import("ol/events").Listener) => void;
|
|
113
|
+
removeChangeListener: (key: string, listener: import("ol/events").Listener) => void;
|
|
114
|
+
set: (key: string, value: any, silent?: boolean | undefined) => void;
|
|
115
|
+
setProperties: (values: {
|
|
116
|
+
[x: string]: any;
|
|
117
|
+
}, silent?: boolean | undefined) => void;
|
|
118
|
+
unset: (key: string, silent?: boolean | undefined) => void;
|
|
119
|
+
changed: () => void;
|
|
120
|
+
getRevision: () => number;
|
|
121
|
+
dispatchEvent: (event: string | import("ol/events/Event").default) => boolean | undefined;
|
|
122
|
+
getListeners: (type: string) => import("ol/events").Listener[] | undefined;
|
|
123
|
+
hasListener: (type?: string | undefined) => boolean;
|
|
124
|
+
dispose: () => void;
|
|
125
|
+
};
|
|
126
|
+
} & TBase;
|
|
127
|
+
export default PropertiesLayerMixin;
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { getUid } from 'ol';
|
|
2
2
|
import getLayersAsFlatArray from '../../common/utils/getLayersAsFlatArray';
|
|
3
3
|
/**
|
|
4
|
-
* This mixin adds some properties to access
|
|
5
|
-
* the management of a hierarchy of layers using children, parent and group property.
|
|
4
|
+
* This mixin adds some properties to access ol custom properties easily.
|
|
6
5
|
*/
|
|
7
6
|
function PropertiesLayerMixin(Base) {
|
|
8
|
-
return class extends Base {
|
|
7
|
+
return class PropertiesLayer extends Base {
|
|
9
8
|
get children() {
|
|
10
9
|
return this.get('children') || [];
|
|
11
10
|
}
|
|
@@ -70,8 +69,9 @@ function PropertiesLayerMixin(Base) {
|
|
|
70
69
|
set visible(newValue) {
|
|
71
70
|
this.setVisible(newValue);
|
|
72
71
|
}
|
|
73
|
-
constructor(
|
|
72
|
+
constructor(...args) {
|
|
74
73
|
var _a;
|
|
74
|
+
const options = args[0];
|
|
75
75
|
super(options);
|
|
76
76
|
this.options = {};
|
|
77
77
|
this.olListenersKeys = [];
|
|
@@ -90,6 +90,7 @@ function PropertiesLayerMixin(Base) {
|
|
|
90
90
|
this.options = options;
|
|
91
91
|
this.children = options.children || []; // Trigger the on children change event
|
|
92
92
|
}
|
|
93
|
+
// @ts-expect-error - this is a mixin
|
|
93
94
|
setMapInternal(map) {
|
|
94
95
|
super.setMapInternal(map);
|
|
95
96
|
if (map) {
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { FrameState } from 'ol/Map';
|
|
2
|
+
import LayerRenderer from 'ol/renderer/Layer';
|
|
3
|
+
import { Coordinate } from 'ol/coordinate';
|
|
4
|
+
import { FeatureCallback } from 'ol/renderer/vector';
|
|
5
|
+
import { Feature } from 'ol';
|
|
6
|
+
import { Geometry } from 'ol/geom';
|
|
7
|
+
import { Pixel } from 'ol/pixel';
|
|
8
|
+
import type MaplibreLayer from '../layers/MaplibreLayer';
|
|
9
|
+
/**
|
|
10
|
+
* This class is a renderer for Maplibre Layer to be able to use the native ol
|
|
11
|
+
* functionnalities like map.getFeaturesAtPixel or map.hasFeatureAtPixel.
|
|
12
|
+
* @private
|
|
13
|
+
*/
|
|
14
|
+
export default class MaplibreLayerRenderer extends LayerRenderer<MaplibreLayer> {
|
|
15
|
+
getFeaturesAtCoordinate(coordinate: Coordinate | undefined, hitTolerance?: number): Feature<Geometry>[];
|
|
16
|
+
prepareFrame(): boolean;
|
|
17
|
+
renderFrame(frameState: FrameState): HTMLElement | null;
|
|
18
|
+
getFeatures(pixel: Pixel): Promise<Feature<Geometry>[]>;
|
|
19
|
+
forEachFeatureAtCoordinate<Feature>(coordinate: Coordinate, frameState: FrameState, hitTolerance: number, callback: FeatureCallback<Feature>): Feature | undefined;
|
|
20
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { FrameState } from 'ol/Map';
|
|
2
|
+
import LayerRenderer from 'ol/renderer/Layer';
|
|
3
|
+
import { Coordinate } from 'ol/coordinate';
|
|
4
|
+
import { FeatureCallback } from 'ol/renderer/vector';
|
|
5
|
+
import { Feature } from 'ol';
|
|
6
|
+
import { Geometry } from 'ol/geom';
|
|
7
|
+
import { Pixel } from 'ol/pixel';
|
|
8
|
+
import type { MaplibreStyleLayer } from '../layers';
|
|
9
|
+
/**
|
|
10
|
+
* This class is a renderer for Maplibre Layer to be able to use the native ol
|
|
11
|
+
* functionnalities like map.getFeaturesAtPixel or map.hasFeatureAtPixel.
|
|
12
|
+
* @private
|
|
13
|
+
*/
|
|
14
|
+
export default class MaplibreStyleLayerRenderer extends LayerRenderer<MaplibreStyleLayer> {
|
|
15
|
+
getFeaturesAtCoordinate(coordinate: Coordinate | undefined, hitTolerance?: number): Feature<Geometry>[];
|
|
16
|
+
prepareFrame(): boolean;
|
|
17
|
+
renderFrame(): null;
|
|
18
|
+
getFeatures(pixel: Pixel): Promise<Feature<Geometry>[]>;
|
|
19
|
+
forEachFeatureAtCoordinate<Feature>(coordinate: Coordinate, frameState: FrameState, hitTolerance: number, callback: FeatureCallback<Feature>): Feature | undefined;
|
|
20
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { FrameState } from 'ol/Map';
|
|
2
|
+
import { Coordinate } from 'ol/coordinate';
|
|
3
|
+
import { FeatureCallback } from 'ol/renderer/vector';
|
|
4
|
+
import { Feature } from 'ol';
|
|
5
|
+
import { Geometry } from 'ol/geom';
|
|
6
|
+
import { Pixel } from 'ol/pixel';
|
|
7
|
+
import CanvasLayerRenderer from 'ol/renderer/canvas/Layer';
|
|
8
|
+
import type RealtimeLayer from '../layers/RealtimeLayer';
|
|
9
|
+
/**
|
|
10
|
+
* This class is a renderer for Maplibre Layer to be able to use the native ol
|
|
11
|
+
* functionnalities like map.getFeaturesAtPixel or map.hasFeatureAtPixel.
|
|
12
|
+
* @private
|
|
13
|
+
*/
|
|
14
|
+
export default class RealtimeLayerRenderer extends CanvasLayerRenderer<RealtimeLayer> {
|
|
15
|
+
private canvas;
|
|
16
|
+
prepareFrame(): boolean;
|
|
17
|
+
renderFrame(frameState: FrameState): HTMLElement;
|
|
18
|
+
getData(pixel: Pixel): Uint8ClampedArray | null;
|
|
19
|
+
getFeatures(pixel: Pixel): Promise<Feature<Geometry>[]>;
|
|
20
|
+
forEachFeatureAtCoordinate<Feature>(coordinate: Coordinate, frameState: FrameState, hitTolerance: number, callback: FeatureCallback<Feature>): Feature | undefined;
|
|
21
|
+
getFeaturesAtCoordinate(coordinate: Coordinate | undefined, hitTolerance?: number): Feature<Geometry>[];
|
|
22
|
+
}
|
|
@@ -16,7 +16,6 @@ export default class RealtimeLayerRenderer extends CanvasLayerRenderer {
|
|
|
16
16
|
return true;
|
|
17
17
|
}
|
|
18
18
|
renderFrame(frameState) {
|
|
19
|
-
var _a;
|
|
20
19
|
const { canvas, renderedViewState } = this.getLayer();
|
|
21
20
|
if (!this.container) {
|
|
22
21
|
this.container = document.createElement('div');
|
|
@@ -24,7 +23,7 @@ export default class RealtimeLayerRenderer extends CanvasLayerRenderer {
|
|
|
24
23
|
this.container.style.position = 'absolute';
|
|
25
24
|
this.container.style.width = '100%';
|
|
26
25
|
this.container.style.height = '100%';
|
|
27
|
-
if (canvas) {
|
|
26
|
+
if (canvas instanceof HTMLCanvasElement) {
|
|
28
27
|
canvas.style.position = 'absolute';
|
|
29
28
|
canvas.style.top = '0';
|
|
30
29
|
canvas.style.left = '0';
|
|
@@ -41,12 +40,12 @@ export default class RealtimeLayerRenderer extends CanvasLayerRenderer {
|
|
|
41
40
|
context === null || context === void 0 ? void 0 : context.clearRect(0, 0, canvas === null || canvas === void 0 ? void 0 : canvas.width, canvas === null || canvas === void 0 ? void 0 : canvas.height);
|
|
42
41
|
}
|
|
43
42
|
else {
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
const pixelCenter =
|
|
47
|
-
|
|
48
|
-
.
|
|
49
|
-
|
|
43
|
+
const map = this.getLayer().getMapInternal();
|
|
44
|
+
const pixelCenterRendered = map === null || map === void 0 ? void 0 : map.getPixelFromCoordinate(renderedCenter);
|
|
45
|
+
const pixelCenter = map === null || map === void 0 ? void 0 : map.getPixelFromCoordinate(center);
|
|
46
|
+
if (pixelCenterRendered && pixelCenter) {
|
|
47
|
+
this.container.style.transform = composeCssTransform(pixelCenterRendered[0] - pixelCenter[0], pixelCenterRendered[1] - pixelCenter[1], renderedResolution / resolution, renderedResolution / resolution, rotation - renderedRotation, 0, 0);
|
|
48
|
+
}
|
|
50
49
|
}
|
|
51
50
|
}
|
|
52
51
|
return this.container;
|
|
@@ -83,12 +82,13 @@ export default class RealtimeLayerRenderer extends CanvasLayerRenderer {
|
|
|
83
82
|
return features === null || features === void 0 ? void 0 : features[0];
|
|
84
83
|
}
|
|
85
84
|
getFeaturesAtCoordinate(coordinate, hitTolerance = 5) {
|
|
85
|
+
var _a;
|
|
86
86
|
if (!coordinate) {
|
|
87
87
|
return [];
|
|
88
88
|
}
|
|
89
89
|
const layer = this.getLayer();
|
|
90
90
|
const map = layer.getMapInternal();
|
|
91
|
-
const resolution = map.getView().getResolution();
|
|
91
|
+
const resolution = ((_a = map === null || map === void 0 ? void 0 : map.getView()) === null || _a === void 0 ? void 0 : _a.getResolution()) || 1;
|
|
92
92
|
const nb = 10;
|
|
93
93
|
const ext = buffer([...coordinate, ...coordinate], hitTolerance * resolution);
|
|
94
94
|
let features = [];
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Coordinate } from 'ol/coordinate';
|
|
2
|
+
import type { Layer } from 'ol/layer';
|
|
3
|
+
import { LayerGetFeatureInfoResponse } from '../../types';
|
|
4
|
+
/**
|
|
5
|
+
* @private
|
|
6
|
+
*/
|
|
7
|
+
declare const getFeatureInfoAtCoordinate: (coordinate: Coordinate, layers: Layer[], hitTolerance?: number) => Promise<LayerGetFeatureInfoResponse[]>;
|
|
8
|
+
export default getFeatureInfoAtCoordinate;
|
|
@@ -63,7 +63,7 @@ const getFeatureInfoAtCoordinate = (coordinate, layers, hitTolerance = 5) => __a
|
|
|
63
63
|
const source = layer === null || layer === void 0 ? void 0 : layer.getSource();
|
|
64
64
|
// @ts-ignore
|
|
65
65
|
if (source === null || source === void 0 ? void 0 : source.getFeatureInfoUrl) {
|
|
66
|
-
const id = getUid(
|
|
66
|
+
const id = getUid(layer);
|
|
67
67
|
// Abort and recreates one controller per layer
|
|
68
68
|
(_c = abortControllers[id]) === null || _c === void 0 ? void 0 : _c.abort();
|
|
69
69
|
abortControllers[id] = new AbortController();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as getFeatureInfoAtCoordinate } from "./getFeatureInfoAtCoordinate";
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "mobility-toolbox-js",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"description": "Toolbox for JavaScript applications in the domains of mobility and logistics.",
|
|
5
|
-
"version": "3.0.0-beta.
|
|
5
|
+
"version": "3.0.0-beta.9",
|
|
6
6
|
"homepage": "https://mobility-toolbox-js.geops.io/",
|
|
7
7
|
"module": "index.js",
|
|
8
8
|
"exports": {
|
package/setupTests.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|