From 1ffbb03565670a2a05918d01374bde41c9c8d4ce Mon Sep 17 00:00:00 2001 From: Filip Leitner Date: Tue, 24 May 2022 11:44:18 +0200 Subject: [PATCH] fix: Make sure map is initiated properly before trying to fit extent Happens when hslayers element misses display property defined in app and fallback value is added late --- projects/hslayers/src/components/map/map.service.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/projects/hslayers/src/components/map/map.service.ts b/projects/hslayers/src/components/map/map.service.ts index 609558cd02..ace2edabea 100644 --- a/projects/hslayers/src/components/map/map.service.ts +++ b/projects/hslayers/src/components/map/map.service.ts @@ -1100,10 +1100,17 @@ export class HsMapService { * @param extent - Extent provided * @param app - App identifier */ - fitExtent(extent: number[], app: string): void { + async fitExtent(extent: number[], app: string): Promise { + const mapSize = this.getMap(app ?? DEFAULT).getSize(); + if (!mapSize.every((p) => p > 0)) { + console.warn( + 'Tried to fit extent but one of map dimensions were 0. Will wait a bit and try again!' + ); + await new Promise((resolve) => setTimeout(resolve, 250)); + } this.getMap(app ?? DEFAULT) .getView() - .fit(extent, {size: this.getMap(app ?? DEFAULT).getSize()}); + .fit(extent, {size: mapSize}); } /**