Browse Source
Merge pull request #5876 from vvlladd28/improvement/map/image-map-resize
[3.3.3] UI: Improvement image map resize - correct calculate center position
pull/5904/head
Igor Kulikov
5 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
6 additions and
8 deletions
-
ui-ngx/src/app/modules/home/components/widget/lib/maps/map-widget2.ts
-
ui-ngx/src/app/modules/home/components/widget/lib/maps/providers/image-map.ts
|
|
|
@ -300,8 +300,8 @@ export class MapWidgetController implements MapWidgetInterface { |
|
|
|
} |
|
|
|
|
|
|
|
resize() { |
|
|
|
this.map?.invalidateSize(); |
|
|
|
this.map.onResize(); |
|
|
|
this.map.onResize(); |
|
|
|
this.map?.invalidateSize(); |
|
|
|
} |
|
|
|
|
|
|
|
destroy() { |
|
|
|
|
|
|
|
@ -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 { |
|
|
|
|