Skip to content
Snippets Groups Projects
Commit 364c1d12 authored by Miłosz Grocholewski's avatar Miłosz Grocholewski
Browse files

Merge branch 'feat/MIN-114-stop-zoom-out-revert' into 'development'

feat(vector-map): restore old map extent

Closes MIN-114

See merge request !348
parents 5a7453fa f03e1bff
No related branches found
No related tags found
1 merge request!348feat(vector-map): restore old map extent
Pipeline #99346 passed
/* eslint-disable no-magic-numbers */
import { DEFAULT_EXTENT_PADDING, OPTIONS, ZOOM_RESCALING_FACTOR } from '@/constants/map';
import { EXTENT_PADDING_MULTIPLICATOR, OPTIONS, ZOOM_RESCALING_FACTOR } from '@/constants/map';
import { mapDataInitialPositionSelector, mapDataSizeSelector } from '@/redux/map/map.selectors';
import { MapInstance, Point } from '@/types/map';
import { usePointToProjection } from '@/utils/map/usePointToProjection';
......@@ -19,32 +19,23 @@ export const useOlMapView = ({ mapInstance }: UseOlMapViewInput): MapConfig['vie
const pointToProjection = usePointToProjection();
const extent = useMemo((): Extent => {
let widthPadding = 0;
let heightPadding = 0;
let mapInstanceWidthToHeightRatio = 2.15;
const mapInstanceSize = mapInstance?.getSize();
if (mapInstanceSize) {
mapInstanceWidthToHeightRatio = mapInstanceSize[0] / mapInstanceSize[1];
}
const mapWidthToHeightRatio = mapSize.width / mapSize.height;
const extentPadding = {
horizontal: mapSize.width * EXTENT_PADDING_MULTIPLICATOR,
vertical: mapSize.height * EXTENT_PADDING_MULTIPLICATOR,
};
if (mapWidthToHeightRatio < mapInstanceWidthToHeightRatio) {
widthPadding = mapSize.height * mapInstanceWidthToHeightRatio - mapSize.width;
} else {
heightPadding = mapSize.width / mapInstanceWidthToHeightRatio - mapSize.height;
}
const topLeftPoint: Point = {
x: mapSize.width + widthPadding / 2 + DEFAULT_EXTENT_PADDING,
y: mapSize.height + heightPadding / 2 + DEFAULT_EXTENT_PADDING,
x: mapSize.width + extentPadding.horizontal,
y: mapSize.height + extentPadding.vertical,
};
const bottomRightPoint: Point = {
x: -widthPadding / 2 - DEFAULT_EXTENT_PADDING,
y: -heightPadding / 2 - DEFAULT_EXTENT_PADDING,
x: -extentPadding.horizontal,
y: -extentPadding.vertical,
};
return boundingExtent([topLeftPoint, bottomRightPoint].map(pointToProjection));
}, [mapSize.width, mapSize.height, mapInstance, pointToProjection]);
}, [pointToProjection, mapSize]);
const center = useMemo((): Point => {
const centerPoint: Point = {
......
......@@ -11,7 +11,6 @@ export const DEFAULT_CENTER_Y = 0;
// eslint-disable-next-line no-magic-numbers
export const LATLNG_FALLBACK: LatLng = [0, 0];
export const EXTENT_PADDING_MULTIPLICATOR = 1;
export const DEFAULT_EXTENT_PADDING = 20;
export const ZOOM_RESCALING_FACTOR = 1;
export const DEFAULT_CENTER_POINT: Point = {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment