@angular-helpers/openlayers 0.4.0 → 0.5.1
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/README.md +131 -38
- package/core/README.md +43 -0
- package/fesm2022/angular-helpers-openlayers-controls.mjs +289 -36
- package/fesm2022/angular-helpers-openlayers-core.mjs +410 -16
- package/fesm2022/angular-helpers-openlayers-interactions.mjs +529 -71
- package/fesm2022/angular-helpers-openlayers-layers.mjs +947 -311
- package/fesm2022/angular-helpers-openlayers-military.mjs +244 -144
- package/fesm2022/angular-helpers-openlayers-overlays.mjs +35 -11
- package/package.json +2 -2
- package/types/angular-helpers-openlayers-controls.d.ts +24 -4
- package/types/angular-helpers-openlayers-core.d.ts +197 -6
- package/types/angular-helpers-openlayers-interactions.d.ts +125 -31
- package/types/angular-helpers-openlayers-layers.d.ts +166 -21
- package/types/angular-helpers-openlayers-military.d.ts +84 -94
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { ElementRef, Provider, EnvironmentProviders } from '@angular/core';
|
|
2
|
+
import { ElementRef, Signal, Resource, Provider, EnvironmentProviders } from '@angular/core';
|
|
3
3
|
import OLMap from 'ol/Map';
|
|
4
|
-
import { View } from 'ol';
|
|
4
|
+
import { View, Feature as Feature$1 } from 'ol';
|
|
5
5
|
|
|
6
6
|
type Coordinate = [number, number];
|
|
7
7
|
type Extent = [number, number, number, number];
|
|
@@ -157,7 +157,11 @@ declare class OlMapService {
|
|
|
157
157
|
private zoneHelper;
|
|
158
158
|
private map;
|
|
159
159
|
private readyCallbacks;
|
|
160
|
-
|
|
160
|
+
private _resolution;
|
|
161
|
+
/** Signal that emits the current map resolution in meters per pixel */
|
|
162
|
+
readonly resolution: _angular_core.Signal<number>;
|
|
163
|
+
setMap(map: OLMap | null): void;
|
|
164
|
+
setResolution(resolution: number): void;
|
|
161
165
|
getMap(): OLMap | null;
|
|
162
166
|
onReady(callback: (map: OLMap) => void): void;
|
|
163
167
|
getView(): View | null;
|
|
@@ -215,12 +219,199 @@ declare class OlZoneHelper {
|
|
|
215
219
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<OlZoneHelper>;
|
|
216
220
|
}
|
|
217
221
|
|
|
218
|
-
|
|
222
|
+
/**
|
|
223
|
+
* Configuration for an ellipse polygon centered at `center`.
|
|
224
|
+
* Coordinates are emitted in EPSG:4326 (lon/lat) using a local tangent-plane
|
|
225
|
+
* approximation; accuracy degrades for radii > ~100 km or near the poles.
|
|
226
|
+
*/
|
|
227
|
+
interface EllipseConfig {
|
|
228
|
+
/** Ellipse center as `[lon, lat]` in EPSG:4326. */
|
|
229
|
+
center: Coordinate;
|
|
230
|
+
/** Semi-major axis in meters. Must be > 0. */
|
|
231
|
+
semiMajor: number;
|
|
232
|
+
/** Semi-minor axis in meters. Must be > 0. */
|
|
233
|
+
semiMinor: number;
|
|
234
|
+
/**
|
|
235
|
+
* Rotation in radians, counter-clockwise from East. Default: 0
|
|
236
|
+
* (semi-major axis points East).
|
|
237
|
+
*/
|
|
238
|
+
rotation?: number;
|
|
239
|
+
/**
|
|
240
|
+
* Number of vertices used to approximate the ellipse. Default: 64.
|
|
241
|
+
* Minimum: 8.
|
|
242
|
+
*/
|
|
243
|
+
segments?: number;
|
|
244
|
+
/** Custom feature properties to attach to the output feature. */
|
|
245
|
+
properties?: Record<string, unknown>;
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Configuration for a circular sector (pie-slice) polygon.
|
|
249
|
+
* Same projection caveats as `EllipseConfig`.
|
|
250
|
+
*/
|
|
251
|
+
interface SectorConfig {
|
|
252
|
+
/** Sector apex / center as `[lon, lat]` in EPSG:4326. */
|
|
253
|
+
center: Coordinate;
|
|
254
|
+
/** Sector radius in meters. Must be > 0. */
|
|
255
|
+
radius: number;
|
|
256
|
+
/** Start angle in radians (0 = East, CCW positive). */
|
|
257
|
+
startAngle: number;
|
|
258
|
+
/**
|
|
259
|
+
* End angle in radians. Must satisfy `startAngle < endAngle <= startAngle + 2π`.
|
|
260
|
+
*/
|
|
261
|
+
endAngle: number;
|
|
262
|
+
/**
|
|
263
|
+
* Number of vertices along the arc. Default: 32. Minimum: 4. The output
|
|
264
|
+
* polygon has `segments + 3` vertices (apex + arc + apex closer).
|
|
265
|
+
*/
|
|
266
|
+
segments?: number;
|
|
267
|
+
/** Custom feature properties to attach to the output feature. */
|
|
268
|
+
properties?: Record<string, unknown>;
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Configuration for a donut (annular ring) polygon — a disk with a
|
|
272
|
+
* concentric circular hole.
|
|
273
|
+
*
|
|
274
|
+
* The output `Feature<Polygon>` has TWO rings: an outer ring (CCW) and
|
|
275
|
+
* an inner ring (CW per the GeoJSON right-hand rule), so renderers that
|
|
276
|
+
* follow the spec fill only the band between the radii.
|
|
277
|
+
*/
|
|
278
|
+
interface DonutConfig {
|
|
279
|
+
/** Donut center as `[lon, lat]` in EPSG:4326. */
|
|
280
|
+
center: Coordinate;
|
|
281
|
+
/** Outer radius in meters. Must be > `innerRadius`. */
|
|
282
|
+
outerRadius: number;
|
|
283
|
+
/** Inner radius in meters. Must be > 0 and < `outerRadius`. */
|
|
284
|
+
innerRadius: number;
|
|
285
|
+
/**
|
|
286
|
+
* Number of vertices per ring. Default: 64. Minimum: 8. Both rings use
|
|
287
|
+
* the same segment count.
|
|
288
|
+
*/
|
|
289
|
+
segments?: number;
|
|
290
|
+
/** Custom feature properties to attach to the output feature. */
|
|
291
|
+
properties?: Record<string, unknown>;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
/**
|
|
295
|
+
* Service exposing general purpose geometry helpers for creating
|
|
296
|
+
* approximated polygons (ellipses, sectors, donuts) from metric parameters.
|
|
297
|
+
*/
|
|
298
|
+
declare class OlGeometryService {
|
|
299
|
+
private idCounter;
|
|
300
|
+
/**
|
|
301
|
+
* Build a `Feature<Polygon>` approximating an ellipse centered at
|
|
302
|
+
* `config.center`. See {@link EllipseConfig} for parameter semantics.
|
|
303
|
+
*/
|
|
304
|
+
createEllipse(config: EllipseConfig): Feature;
|
|
305
|
+
/**
|
|
306
|
+
* Build a `Feature<Polygon>` for a circular sector (pie slice).
|
|
307
|
+
* See {@link SectorConfig} for parameter semantics.
|
|
308
|
+
*/
|
|
309
|
+
createSector(config: SectorConfig): Feature;
|
|
310
|
+
/**
|
|
311
|
+
* Build a `Feature<Polygon>` for a donut (annular ring). The output has
|
|
312
|
+
* two rings: an outer ring wound counter-clockwise and an inner ring
|
|
313
|
+
* wound clockwise so the GeoJSON right-hand rule renders the hole.
|
|
314
|
+
*/
|
|
315
|
+
createDonut(config: DonutConfig): Feature;
|
|
316
|
+
/**
|
|
317
|
+
* Project an `(dx, dy)` meter offset from `center` to lon/lat using true
|
|
318
|
+
* geodesic math (Vincenty's formulae) via ol/sphere.
|
|
319
|
+
*/
|
|
320
|
+
offsetMetersToLonLat(center: Coordinate, dx: number, dy: number): Coordinate;
|
|
321
|
+
private nextId;
|
|
322
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<OlGeometryService, never>;
|
|
323
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<OlGeometryService>;
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
/**
|
|
327
|
+
* Service for orchestrating time-series animations in OpenLayers.
|
|
328
|
+
* Exposes a reactive currentTime signal that updates outside the Angular zone
|
|
329
|
+
* via requestAnimationFrame, ensuring 60FPS WebGL animations without triggering
|
|
330
|
+
* global change detection.
|
|
331
|
+
*/
|
|
332
|
+
declare class OlTimeService {
|
|
333
|
+
private zoneHelper;
|
|
334
|
+
private timeSignal;
|
|
335
|
+
private playingSignal;
|
|
336
|
+
private speedSignal;
|
|
337
|
+
private animationFrameId;
|
|
338
|
+
private lastTick;
|
|
339
|
+
readonly currentTime: _angular_core.Signal<number>;
|
|
340
|
+
readonly isPlaying: _angular_core.Signal<boolean>;
|
|
341
|
+
readonly speed: _angular_core.Signal<number>;
|
|
342
|
+
/**
|
|
343
|
+
* Sets the current time manually.
|
|
344
|
+
* @param time Epoch timestamp in milliseconds
|
|
345
|
+
*/
|
|
346
|
+
setTime(time: number): void;
|
|
347
|
+
/**
|
|
348
|
+
* Sets the playback speed multiplier.
|
|
349
|
+
* @param speed Multiplier (e.g. 1 = real time, 60 = 1 minute per second)
|
|
350
|
+
*/
|
|
351
|
+
setSpeed(speed: number): void;
|
|
352
|
+
/**
|
|
353
|
+
* Starts the time animation loop.
|
|
354
|
+
*/
|
|
355
|
+
play(): void;
|
|
356
|
+
/**
|
|
357
|
+
* Pauses the time animation loop.
|
|
358
|
+
*/
|
|
359
|
+
pause(): void;
|
|
360
|
+
/**
|
|
361
|
+
* Stops the animation and resets to a specific time.
|
|
362
|
+
*/
|
|
363
|
+
stop(resetTime?: number): void;
|
|
364
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<OlTimeService, never>;
|
|
365
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<OlTimeService>;
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
interface VectorResourceOptions {
|
|
369
|
+
/** Optional custom fetch options */
|
|
370
|
+
fetchOptions?: RequestInit;
|
|
371
|
+
}
|
|
372
|
+
/**
|
|
373
|
+
* Creates an Angular resource for fetching and decoding GeoJSON into OpenLayers Features.
|
|
374
|
+
* Must be called in an injection context.
|
|
375
|
+
*
|
|
376
|
+
* @param url The URL signal or string to fetch data from
|
|
377
|
+
* @param options Additional vector resource options
|
|
378
|
+
* @returns An Angular Resource containing an array of parsed Features
|
|
379
|
+
*/
|
|
380
|
+
declare function createVectorResource(url: Signal<string | undefined>, options?: VectorResourceOptions): Resource<Feature[]>;
|
|
381
|
+
|
|
382
|
+
/**
|
|
383
|
+
* Converts an OpenLayers feature to the internal Feature format.
|
|
384
|
+
* Handles coordinate extraction and geometry type mapping.
|
|
385
|
+
*
|
|
386
|
+
* @param olFeature - The OpenLayers feature to convert
|
|
387
|
+
* @returns The converted Feature with normalized structure
|
|
388
|
+
*/
|
|
389
|
+
declare function olFeatureToFeature(olFeature: Feature$1): Feature;
|
|
390
|
+
/**
|
|
391
|
+
* Converts an internal Feature to an OpenLayers feature.
|
|
392
|
+
*/
|
|
393
|
+
declare function featureToOlFeature(feature: Feature): Feature$1;
|
|
394
|
+
|
|
395
|
+
type OlFeatureKind = 'layers' | 'controls' | 'interactions' | 'overlays' | 'military' | 'projections';
|
|
219
396
|
interface OlFeature<Kind extends OlFeatureKind> {
|
|
220
397
|
kind: Kind;
|
|
221
398
|
providers: Provider[];
|
|
222
399
|
}
|
|
223
400
|
declare function provideOpenLayers(...features: OlFeature<OlFeatureKind>[]): EnvironmentProviders;
|
|
224
401
|
|
|
225
|
-
|
|
226
|
-
|
|
402
|
+
interface Proj4Definition {
|
|
403
|
+
code: string;
|
|
404
|
+
def: string;
|
|
405
|
+
extent?: [number, number, number, number];
|
|
406
|
+
}
|
|
407
|
+
/**
|
|
408
|
+
* Registers custom projections using proj4.
|
|
409
|
+
*
|
|
410
|
+
* @param proj4 - The proj4 instance (must be passed to avoid strong dependency on proj4 package)
|
|
411
|
+
* @param definitions - Array of projection definitions
|
|
412
|
+
* @returns OlFeature for projections
|
|
413
|
+
*/
|
|
414
|
+
declare function withProjections(proj4: any, definitions: Proj4Definition[]): OlFeature<'projections'>;
|
|
415
|
+
|
|
416
|
+
export { OlGeometryService, OlMapComponent, OlMapService, OlTimeService, OlZoneHelper, createVectorResource, featureToOlFeature, olFeatureToFeature, provideOpenLayers, withProjections };
|
|
417
|
+
export type { AnimationOptions, Coordinate, DonutConfig, EllipseConfig, Extent, Feature, FitOptions, Geometry, GeometryType, Layer, MapClickEvent, MapConfig, MapViewOptions, OlFeature, OlFeatureKind, Pixel, Proj4Definition, ProjectionCode, SectorConfig, Style, VectorResourceOptions, ViewState };
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import * as rxjs from 'rxjs';
|
|
2
2
|
import * as _angular_helpers_openlayers_interactions from '@angular-helpers/openlayers/interactions';
|
|
3
|
-
import * as
|
|
3
|
+
import * as _angular_core from '@angular/core';
|
|
4
4
|
import { Provider } from '@angular/core';
|
|
5
|
-
import * as _angular_helpers_openlayers_core from '@angular-helpers/openlayers/core';
|
|
6
5
|
import { Feature, OlFeature } from '@angular-helpers/openlayers/core';
|
|
7
6
|
import Interaction from 'ol/interaction/Interaction';
|
|
8
7
|
import OLMap from 'ol/Map';
|
|
9
|
-
import { Feature as Feature$1 } from 'ol';
|
|
10
8
|
|
|
11
9
|
type InteractionType = 'select' | 'draw' | 'modify' | 'dragAndDrop';
|
|
12
10
|
interface InteractionConfig {
|
|
@@ -22,9 +20,10 @@ interface SelectConfig extends InteractionConfig {
|
|
|
22
20
|
layers?: string[];
|
|
23
21
|
multi?: boolean;
|
|
24
22
|
hitTolerance?: number;
|
|
23
|
+
condition?: 'click' | 'pointerMove';
|
|
25
24
|
}
|
|
26
25
|
interface DrawConfig extends InteractionConfig {
|
|
27
|
-
type: 'Point' | 'LineString' | 'Polygon' | 'Circle';
|
|
26
|
+
type: 'Point' | 'LineString' | 'Polygon' | 'Circle' | 'Ellipse' | 'Donut';
|
|
28
27
|
source?: string;
|
|
29
28
|
freehand?: boolean;
|
|
30
29
|
snapTolerance?: number;
|
|
@@ -38,17 +37,21 @@ interface DragAndDropConfig extends InteractionConfig {
|
|
|
38
37
|
projection?: string;
|
|
39
38
|
}
|
|
40
39
|
interface SelectEvent {
|
|
41
|
-
|
|
42
|
-
selected:
|
|
40
|
+
interactionId: string;
|
|
41
|
+
selected: Feature[];
|
|
42
|
+
deselected: Feature[];
|
|
43
43
|
}
|
|
44
44
|
interface DrawEndEvent {
|
|
45
|
+
interactionId: string;
|
|
45
46
|
feature: Feature;
|
|
46
47
|
type: string;
|
|
47
48
|
}
|
|
48
49
|
interface DrawStartEvent {
|
|
50
|
+
interactionId: string;
|
|
49
51
|
feature: Feature;
|
|
50
52
|
}
|
|
51
53
|
interface ModifyEvent {
|
|
54
|
+
interactionId: string;
|
|
52
55
|
features: Feature[];
|
|
53
56
|
type: 'modifystart' | 'modifyend';
|
|
54
57
|
}
|
|
@@ -83,13 +86,15 @@ declare class OlInteractionService {
|
|
|
83
86
|
private selectService;
|
|
84
87
|
private drawService;
|
|
85
88
|
private modifyService;
|
|
86
|
-
readonly selectedFeatures:
|
|
87
|
-
readonly
|
|
88
|
-
readonly
|
|
89
|
-
readonly
|
|
89
|
+
readonly selectedFeatures: _angular_core.Signal<Feature[]>;
|
|
90
|
+
readonly hoveredFeature: _angular_core.Signal<Feature>;
|
|
91
|
+
readonly selectionCount: _angular_core.Signal<number>;
|
|
92
|
+
readonly hasSelection: _angular_core.Signal<boolean>;
|
|
93
|
+
readonly activeInteractions: _angular_core.Signal<_angular_helpers_openlayers_interactions.ManagedInteraction[]>;
|
|
90
94
|
readonly drawStart$: rxjs.Observable<_angular_helpers_openlayers_interactions.DrawStartEvent>;
|
|
91
95
|
readonly drawEnd$: rxjs.Observable<_angular_helpers_openlayers_interactions.DrawEndEvent>;
|
|
92
96
|
readonly modify$: rxjs.Observable<_angular_helpers_openlayers_interactions.ModifyEvent>;
|
|
97
|
+
readonly select$: rxjs.Observable<_angular_helpers_openlayers_interactions.SelectEvent>;
|
|
93
98
|
/**
|
|
94
99
|
* Enable a select interaction on the map.
|
|
95
100
|
* @param id - Unique identifier for this interaction
|
|
@@ -144,8 +149,8 @@ declare class OlInteractionService {
|
|
|
144
149
|
* @returns Array of interaction state summaries
|
|
145
150
|
*/
|
|
146
151
|
getInteractionState(): _angular_helpers_openlayers_interactions.InteractionState[];
|
|
147
|
-
static ɵfac:
|
|
148
|
-
static ɵprov:
|
|
152
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<OlInteractionService, never>;
|
|
153
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<OlInteractionService>;
|
|
149
154
|
}
|
|
150
155
|
|
|
151
156
|
/**
|
|
@@ -172,16 +177,20 @@ interface ManagedInteraction {
|
|
|
172
177
|
declare class InteractionStateService {
|
|
173
178
|
private interactions;
|
|
174
179
|
private selectedFeaturesInternal;
|
|
180
|
+
private hoveredFeatureInternal;
|
|
175
181
|
private drawStartSubject;
|
|
176
182
|
private drawEndSubject;
|
|
177
183
|
private modifySubject;
|
|
178
|
-
|
|
179
|
-
readonly
|
|
180
|
-
readonly
|
|
181
|
-
readonly
|
|
184
|
+
private selectSubject;
|
|
185
|
+
readonly selectedFeatures: _angular_core.Signal<Feature[]>;
|
|
186
|
+
readonly hoveredFeature: _angular_core.Signal<Feature>;
|
|
187
|
+
readonly selectionCount: _angular_core.Signal<number>;
|
|
188
|
+
readonly hasSelection: _angular_core.Signal<boolean>;
|
|
189
|
+
readonly activeInteractions: _angular_core.Signal<ManagedInteraction[]>;
|
|
182
190
|
readonly drawStart$: rxjs.Observable<DrawStartEvent>;
|
|
183
191
|
readonly drawEnd$: rxjs.Observable<DrawEndEvent>;
|
|
184
192
|
readonly modify$: rxjs.Observable<ModifyEvent>;
|
|
193
|
+
readonly select$: rxjs.Observable<SelectEvent>;
|
|
185
194
|
/**
|
|
186
195
|
* Adds a managed interaction to the state.
|
|
187
196
|
* If the interaction is marked as exclusive, it disables other exclusive interactions.
|
|
@@ -213,6 +222,11 @@ declare class InteractionStateService {
|
|
|
213
222
|
* Clears the current selection.
|
|
214
223
|
*/
|
|
215
224
|
clearSelection(): void;
|
|
225
|
+
/**
|
|
226
|
+
* Sets the currently hovered feature.
|
|
227
|
+
* @param feature - The hovered feature or null
|
|
228
|
+
*/
|
|
229
|
+
setHoveredFeature(feature: Feature | null): void;
|
|
216
230
|
/**
|
|
217
231
|
* Emits a draw start event.
|
|
218
232
|
* @param event - The draw start event data
|
|
@@ -228,6 +242,11 @@ declare class InteractionStateService {
|
|
|
228
242
|
* @param event - The modify event data
|
|
229
243
|
*/
|
|
230
244
|
emitModify(event: ModifyEvent): void;
|
|
245
|
+
/**
|
|
246
|
+
* Emits a select event.
|
|
247
|
+
* @param event - The select event data
|
|
248
|
+
*/
|
|
249
|
+
emitSelect(event: SelectEvent): void;
|
|
231
250
|
/**
|
|
232
251
|
* Gets the current interaction state summary.
|
|
233
252
|
* @returns Array of interaction state objects
|
|
@@ -244,8 +263,8 @@ declare class InteractionStateService {
|
|
|
244
263
|
* Note: This only clears the state tracking, not the actual OL interactions.
|
|
245
264
|
*/
|
|
246
265
|
clearAll(): void;
|
|
247
|
-
static ɵfac:
|
|
248
|
-
static ɵprov:
|
|
266
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<InteractionStateService, never>;
|
|
267
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<InteractionStateService>;
|
|
249
268
|
}
|
|
250
269
|
|
|
251
270
|
/**
|
|
@@ -263,8 +282,8 @@ declare class SelectInteractionService {
|
|
|
263
282
|
* @returns Promise that resolves when the interaction is created
|
|
264
283
|
*/
|
|
265
284
|
createSelectInteraction(id: string, config: SelectConfig, map: OLMap): void;
|
|
266
|
-
static ɵfac:
|
|
267
|
-
static ɵprov:
|
|
285
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectInteractionService, never>;
|
|
286
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<SelectInteractionService>;
|
|
268
287
|
}
|
|
269
288
|
|
|
270
289
|
/**
|
|
@@ -283,8 +302,8 @@ declare class DrawInteractionService {
|
|
|
283
302
|
* @returns True if the interaction was created successfully
|
|
284
303
|
*/
|
|
285
304
|
createDrawInteraction(id: string, config: DrawConfig, map: OLMap): boolean;
|
|
286
|
-
static ɵfac:
|
|
287
|
-
static ɵprov:
|
|
305
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DrawInteractionService, never>;
|
|
306
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<DrawInteractionService>;
|
|
288
307
|
}
|
|
289
308
|
|
|
290
309
|
/**
|
|
@@ -301,18 +320,88 @@ declare class ModifyInteractionService {
|
|
|
301
320
|
* @param map - OpenLayers map instance
|
|
302
321
|
*/
|
|
303
322
|
createModifyInteraction(id: string, config: ModifyConfig, map: OLMap): void;
|
|
304
|
-
static ɵfac:
|
|
305
|
-
static ɵprov:
|
|
323
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ModifyInteractionService, never>;
|
|
324
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ModifyInteractionService>;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
declare class MeasurementInteractionService {
|
|
328
|
+
private mapService;
|
|
329
|
+
private zoneHelper;
|
|
330
|
+
private draw?;
|
|
331
|
+
private source;
|
|
332
|
+
private vectorLayer?;
|
|
333
|
+
private map?;
|
|
334
|
+
private sketch;
|
|
335
|
+
private measureTooltipElement;
|
|
336
|
+
private measureTooltip;
|
|
337
|
+
private listener;
|
|
338
|
+
private isMeasuring;
|
|
339
|
+
startMeasuring(type: 'LineString' | 'Polygon'): void;
|
|
340
|
+
stopMeasuring(): void;
|
|
341
|
+
isActive(): boolean;
|
|
342
|
+
private createMeasureTooltip;
|
|
343
|
+
private formatLength;
|
|
344
|
+
private formatArea;
|
|
345
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MeasurementInteractionService, never>;
|
|
346
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<MeasurementInteractionService>;
|
|
306
347
|
}
|
|
307
348
|
|
|
308
349
|
/**
|
|
309
|
-
*
|
|
310
|
-
* Handles coordinate extraction and geometry type mapping.
|
|
311
|
-
*
|
|
312
|
-
* @param olFeature - The OpenLayers feature to convert
|
|
313
|
-
* @returns The converted Feature with normalized structure
|
|
350
|
+
* Declarative component to configure an OpenLayers Draw Interaction.
|
|
314
351
|
*/
|
|
315
|
-
declare
|
|
352
|
+
declare class OlDrawInteractionComponent {
|
|
353
|
+
private interactionService;
|
|
354
|
+
private destroyRef;
|
|
355
|
+
id: _angular_core.InputSignal<string>;
|
|
356
|
+
type: _angular_core.InputSignal<"Point" | "LineString" | "Polygon" | "Circle">;
|
|
357
|
+
source: _angular_core.InputSignal<string>;
|
|
358
|
+
freehand: _angular_core.InputSignal<boolean>;
|
|
359
|
+
snapTolerance: _angular_core.InputSignal<number>;
|
|
360
|
+
active: _angular_core.InputSignal<boolean>;
|
|
361
|
+
private drawStartFiltered$;
|
|
362
|
+
private drawEndFiltered$;
|
|
363
|
+
drawStart: _angular_core.OutputRef<_angular_helpers_openlayers_interactions.DrawStartEvent>;
|
|
364
|
+
drawEnd: _angular_core.OutputRef<_angular_helpers_openlayers_interactions.DrawEndEvent>;
|
|
365
|
+
constructor();
|
|
366
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<OlDrawInteractionComponent, never>;
|
|
367
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<OlDrawInteractionComponent, "ol-draw-interaction", never, { "id": { "alias": "id"; "required": true; "isSignal": true; }; "type": { "alias": "type"; "required": true; "isSignal": true; }; "source": { "alias": "source"; "required": false; "isSignal": true; }; "freehand": { "alias": "freehand"; "required": false; "isSignal": true; }; "snapTolerance": { "alias": "snapTolerance"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; }, { "drawStart": "drawStart"; "drawEnd": "drawEnd"; }, never, never, true, never>;
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
/**
|
|
371
|
+
* Declarative component to configure an OpenLayers Modify Interaction.
|
|
372
|
+
*/
|
|
373
|
+
declare class OlModifyInteractionComponent {
|
|
374
|
+
private interactionService;
|
|
375
|
+
private destroyRef;
|
|
376
|
+
id: _angular_core.InputSignal<string>;
|
|
377
|
+
source: _angular_core.InputSignal<string>;
|
|
378
|
+
snapTolerance: _angular_core.InputSignal<number>;
|
|
379
|
+
active: _angular_core.InputSignal<boolean>;
|
|
380
|
+
private modifyFiltered$;
|
|
381
|
+
modifyEvent: _angular_core.OutputRef<_angular_helpers_openlayers_interactions.ModifyEvent>;
|
|
382
|
+
constructor();
|
|
383
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<OlModifyInteractionComponent, never>;
|
|
384
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<OlModifyInteractionComponent, "ol-modify-interaction", never, { "id": { "alias": "id"; "required": true; "isSignal": true; }; "source": { "alias": "source"; "required": false; "isSignal": true; }; "snapTolerance": { "alias": "snapTolerance"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; }, { "modifyEvent": "modifyEvent"; }, never, never, true, never>;
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
/**
|
|
388
|
+
* Declarative component to configure an OpenLayers Select Interaction.
|
|
389
|
+
*/
|
|
390
|
+
declare class OlSelectInteractionComponent {
|
|
391
|
+
private interactionService;
|
|
392
|
+
private destroyRef;
|
|
393
|
+
id: _angular_core.InputSignal<string>;
|
|
394
|
+
layers: _angular_core.InputSignal<string[]>;
|
|
395
|
+
multi: _angular_core.InputSignal<boolean>;
|
|
396
|
+
hitTolerance: _angular_core.InputSignal<number>;
|
|
397
|
+
condition: _angular_core.InputSignal<"click" | "pointerMove">;
|
|
398
|
+
active: _angular_core.InputSignal<boolean>;
|
|
399
|
+
private selectFiltered$;
|
|
400
|
+
selectEvent: _angular_core.OutputRef<_angular_helpers_openlayers_interactions.SelectEvent>;
|
|
401
|
+
constructor();
|
|
402
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<OlSelectInteractionComponent, never>;
|
|
403
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<OlSelectInteractionComponent, "ol-select-interaction", never, { "id": { "alias": "id"; "required": true; "isSignal": true; }; "layers": { "alias": "layers"; "required": false; "isSignal": true; }; "multi": { "alias": "multi"; "required": false; "isSignal": true; }; "hitTolerance": { "alias": "hitTolerance"; "required": false; "isSignal": true; }; "condition": { "alias": "condition"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; }, { "selectEvent": "selectEvent"; }, never, never, true, never>;
|
|
404
|
+
}
|
|
316
405
|
|
|
317
406
|
/**
|
|
318
407
|
* Provide the interactions feature with OlInteractionService and all specialized services.
|
|
@@ -346,6 +435,11 @@ declare function withDrawInteraction(id: string, config: DrawConfig): Provider;
|
|
|
346
435
|
* @returns Provider function that enables modify interaction
|
|
347
436
|
*/
|
|
348
437
|
declare function withModifyInteraction(id: string, config?: ModifyConfig): Provider;
|
|
438
|
+
/**
|
|
439
|
+
* Enable measurement interaction when providing the interactions feature.
|
|
440
|
+
* @returns Provider function that enables measurement interaction
|
|
441
|
+
*/
|
|
442
|
+
declare function withMeasurementInteraction(): Provider;
|
|
349
443
|
|
|
350
|
-
export { DrawInteractionService, InteractionStateService, ModifyInteractionService, OlInteractionService,
|
|
444
|
+
export { DrawInteractionService, InteractionStateService, MeasurementInteractionService, ModifyInteractionService, OlDrawInteractionComponent, OlInteractionService, OlModifyInteractionComponent, OlSelectInteractionComponent, SelectInteractionService, provideInteractions, withDrawInteraction, withInteractions, withMeasurementInteraction, withModifyInteraction, withSelectInteraction };
|
|
351
445
|
export type { DragAndDropConfig, DrawConfig, DrawEndEvent, DrawStartEvent, InteractionConfig, InteractionState, InteractionType, ManagedInteraction, ModifyConfig, ModifyEvent, SelectConfig, SelectEvent };
|