Browse Source

UI: Improvement image map resize - correct calculate center position

pull/5876/head
Vladyslav_Prykhodko 5 years ago
parent
commit
316e1c40d8
  1. 4
      ui-ngx/src/app/modules/home/components/widget/lib/maps/map-widget2.ts
  2. 10
      ui-ngx/src/app/modules/home/components/widget/lib/maps/providers/image-map.ts

4
ui-ngx/src/app/modules/home/components/widget/lib/maps/map-widget2.ts

@ -300,8 +300,8 @@ export class MapWidgetController implements MapWidgetInterface {
}
resize() {
this.map?.invalidateSize();
this.map.onResize();
this.map.onResize();
this.map?.invalidateSize();
}
destroy() {

10
ui-ngx/src/app/modules/home/components/widget/lib/maps/providers/image-map.ts

@ -159,27 +159,25 @@ export class ImageMap extends LeafletMap {
lastCenterPos.x *= w;
lastCenterPos.y *= h;
const center = this.pointToLatLng(lastCenterPos.x, lastCenterPos.y);
setTimeout(() => {
this.map.panTo(center, { animate: false });
}, 0);
this.map.panTo(center, { animate: false });
}
}
onResize(updateImage?: boolean) {
let width = this.$container.clientWidth;
if (width > 0 && this.aspect) {
let height = width / this.aspect;
let height = Math.round(width / this.aspect);
const imageMapHeight = this.$container.clientHeight;
if (imageMapHeight > 0 && height > imageMapHeight) {
height = imageMapHeight;
width = height * this.aspect;
width = Math.round(height * this.aspect);
}
width *= maxZoom;
const prevWidth = this.width;
const prevHeight = this.height;
if (this.width !== width || updateImage) {
this.width = width;
this.height = width / this.aspect;
this.height = Math.round(width / this.aspect);
if (!this.map) {
this.initMap(updateImage);
} else {

Loading…
Cancel
Save