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

feat(vector-map): restore old map extent

parent dda6fcaa
No related branches found
No related tags found
2 merge requests!349feat(vector-map): split getStyle function into separate smaller functions,!348feat(vector-map): restore old map extent
Pipeline #99326 passed
/* eslint-disable no-magic-numbers */ /* 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 { mapDataInitialPositionSelector, mapDataSizeSelector } from '@/redux/map/map.selectors';
import { MapInstance, Point } from '@/types/map'; import { MapInstance, Point } from '@/types/map';
import { usePointToProjection } from '@/utils/map/usePointToProjection'; import { usePointToProjection } from '@/utils/map/usePointToProjection';
...@@ -19,32 +19,23 @@ export const useOlMapView = ({ mapInstance }: UseOlMapViewInput): MapConfig['vie ...@@ -19,32 +19,23 @@ export const useOlMapView = ({ mapInstance }: UseOlMapViewInput): MapConfig['vie
const pointToProjection = usePointToProjection(); const pointToProjection = usePointToProjection();
const extent = useMemo((): Extent => { const extent = useMemo((): Extent => {
let widthPadding = 0; const extentPadding = {
let heightPadding = 0; horizontal: mapSize.width * EXTENT_PADDING_MULTIPLICATOR,
let mapInstanceWidthToHeightRatio = 2.15; vertical: mapSize.height * EXTENT_PADDING_MULTIPLICATOR,
const mapInstanceSize = mapInstance?.getSize(); };
if (mapInstanceSize) {
mapInstanceWidthToHeightRatio = mapInstanceSize[0] / mapInstanceSize[1];
}
const mapWidthToHeightRatio = mapSize.width / mapSize.height;
if (mapWidthToHeightRatio < mapInstanceWidthToHeightRatio) {
widthPadding = mapSize.height * mapInstanceWidthToHeightRatio - mapSize.width;
} else {
heightPadding = mapSize.width / mapInstanceWidthToHeightRatio - mapSize.height;
}
const topLeftPoint: Point = { const topLeftPoint: Point = {
x: mapSize.width + widthPadding / 2 + DEFAULT_EXTENT_PADDING, x: mapSize.width + extentPadding.horizontal,
y: mapSize.height + heightPadding / 2 + DEFAULT_EXTENT_PADDING, y: mapSize.height + extentPadding.vertical,
}; };
const bottomRightPoint: Point = { const bottomRightPoint: Point = {
x: -widthPadding / 2 - DEFAULT_EXTENT_PADDING, x: -extentPadding.horizontal,
y: -heightPadding / 2 - DEFAULT_EXTENT_PADDING, y: -extentPadding.vertical,
}; };
return boundingExtent([topLeftPoint, bottomRightPoint].map(pointToProjection)); return boundingExtent([topLeftPoint, bottomRightPoint].map(pointToProjection));
}, [mapSize.width, mapSize.height, mapInstance, pointToProjection]); }, [pointToProjection, mapSize]);
const center = useMemo((): Point => { const center = useMemo((): Point => {
const centerPoint: Point = { const centerPoint: Point = {
......
...@@ -11,7 +11,6 @@ export const DEFAULT_CENTER_Y = 0; ...@@ -11,7 +11,6 @@ export const DEFAULT_CENTER_Y = 0;
// eslint-disable-next-line no-magic-numbers // eslint-disable-next-line no-magic-numbers
export const LATLNG_FALLBACK: LatLng = [0, 0]; export const LATLNG_FALLBACK: LatLng = [0, 0];
export const EXTENT_PADDING_MULTIPLICATOR = 1; export const EXTENT_PADDING_MULTIPLICATOR = 1;
export const DEFAULT_EXTENT_PADDING = 20;
export const ZOOM_RESCALING_FACTOR = 1; export const ZOOM_RESCALING_FACTOR = 1;
export const DEFAULT_CENTER_POINT: Point = { 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