Skip to content

Commit

Permalink
fix(integration): update coordinate if projection system change (#1661)
Browse files Browse the repository at this point in the history
  • Loading branch information
aziz-access committed May 15, 2024
1 parent a904cbd commit 382f913
Showing 1 changed file with 44 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ export class AdvancedCoordinatesComponent implements OnInit, OnDestroy {
private inMtmZone: boolean = true;
private inLambert2 = { 32198: true, 3798: true };
private mapState$$: Subscription;
private formStatus$$: Subscription;
private _projectionsLimitations: ProjectionsLimitationsOptions = {};
private projectionsConstraints: ProjectionsLimitationsOptions;
private defaultProj: InputProjections;
Expand Down Expand Up @@ -136,40 +137,22 @@ export class AdvancedCoordinatesComponent implements OnInit, OnDestroy {
.pipe(debounceTime(50))
.subscribe(() => {
this.setScaleValue(this.map);
this.currentCenterDefaultProj = this.map.viewController.getCenter(
this.defaultProj.code
);
const currentMtmZone = zoneMtm(this.currentCenterDefaultProj[0]);
const currentUtmZone = zoneUtm(this.currentCenterDefaultProj[0]);
if (!this.inMtmZone && currentMtmZone !== this.currentZones.mtm) {
this.back2quebec();
}
let zoneChange = false;
if (currentMtmZone !== this.currentZones.mtm) {
this.currentZones.mtm = currentMtmZone;
zoneChange = true;
}
if (currentUtmZone !== this.currentZones.utm) {
this.currentZones.utm = currentUtmZone;
zoneChange = true;
}
if (zoneChange) {
this.updateProjectionsZoneChange();
}
this.checkLambert(this.currentCenterDefaultProj);
this.coordinates = this.getCoordinates();
this.cdRef.detectChanges();
this.storageService.set(
'currentProjection',
this.inputProj,
StorageScope.SESSION
);
this.updateCoordinates();
});

this.formStatus$$ = this.form.valueChanges.subscribe(() => {
this.updateCoordinates();
});

const tempInputProj = this.storageService.get(
'currentProjection'
) as InputProjections;
this.inputProj = this.projections$.value[0];

this.inputProj =
this.projections$.value.find(
(val) => val.code === this.defaultProj.code
) ?? this.projections$.value[0];

if (tempInputProj !== null) {
const pos = this.positionInList(tempInputProj);
this.inputProj = this.projections$.value[pos];
Expand All @@ -185,6 +168,7 @@ export class AdvancedCoordinatesComponent implements OnInit, OnDestroy {
ngOnDestroy(): void {
this.map.mapCenter$.next(false);
this.mapState$$.unsubscribe();
this.formStatus$$.unsubscribe();
}

setScaleValue(map: IgoMap) {
Expand Down Expand Up @@ -212,6 +196,37 @@ export class AdvancedCoordinatesComponent implements OnInit, OnDestroy {
return coord;
}

updateCoordinates() {
this.currentCenterDefaultProj = this.map.viewController.getCenter(
this.defaultProj.code
);
const currentMtmZone = zoneMtm(this.currentCenterDefaultProj[0]);
const currentUtmZone = zoneUtm(this.currentCenterDefaultProj[0]);
if (!this.inMtmZone && currentMtmZone !== this.currentZones.mtm) {
this.back2quebec();
}
let zoneChange = false;
if (currentMtmZone !== this.currentZones.mtm) {
this.currentZones.mtm = currentMtmZone;
zoneChange = true;
}
if (currentUtmZone !== this.currentZones.utm) {
this.currentZones.utm = currentUtmZone;
zoneChange = true;
}
if (zoneChange) {
this.updateProjectionsZoneChange();
}
this.checkLambert(this.currentCenterDefaultProj);
this.coordinates = this.getCoordinates();

this.storageService.set(
'currentProjection',
this.inputProj,
StorageScope.SESSION
);
}

/**
* Copy the coordinates to a clipboard
*/
Expand Down

0 comments on commit 382f913

Please sign in to comment.