From 5879db8157413151c7a8acb3b6a52add95789543 Mon Sep 17 00:00:00 2001 From: Khaled Sakr Date: Wed, 12 Feb 2025 17:57:47 +0100 Subject: [PATCH 1/2] fix(heremap): preserve integer zoom when focusing on markers --- src/HEREMap.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/HEREMap.tsx b/src/HEREMap.tsx index 4e0a1ab..14263ad 100644 --- a/src/HEREMap.tsx +++ b/src/HEREMap.tsx @@ -135,7 +135,7 @@ export const HEREMap = forwardRef(({ topLeft.walk(BEARING_TOP_LEFT, distance), bottomRight.walk(BEARING_BOTTOM_RIGHT, distance), ) - if (viewBounds) { map.getViewModel().setLookAtData({ bounds: viewBounds }, animate) } + if (viewBounds) { map.getViewModel().setLookAtData({ bounds: viewBounds }, animate, true) } } const zoomOnMarkers = (animate: boolean = true, group: string = 'default') => { From f1f5bb1f6a322f0a1a6629240cb40a90c9e98919 Mon Sep 17 00:00:00 2001 From: Khaled Sakr Date: Wed, 12 Feb 2025 18:23:37 +0100 Subject: [PATCH 2/2] feat(heremap): allow specifying zoom speed --- src/HEREMap.tsx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/HEREMap.tsx b/src/HEREMap.tsx index 14263ad..e77a4ae 100644 --- a/src/HEREMap.tsx +++ b/src/HEREMap.tsx @@ -59,8 +59,8 @@ export interface HEREMapRef { setCenter: (point: H.geo.IPoint) => void, setZoom: (zoom: number) => void, screenToGeo: (x: number, y: number) => H.geo.Point, - zoomOnMarkers: (animate?: boolean, group?: string) => void, - zoomOnMarkersSet: (markersSet: H.map.DomMarker[], animate?: boolean) => void, + zoomOnMarkers: (animate?: number | boolean, group?: string) => void, + zoomOnMarkersSet: (markersSet: H.map.DomMarker[], animate?: number | boolean) => void, addToMarkerGroup: (marker: H.map.Marker, group: string) => void, removeFromMarkerGroup: (marker: H.map.Marker, group: string) => void, } @@ -123,7 +123,7 @@ export const HEREMap = forwardRef(({ return map.screenToGeo(x, y) } - const zoomOnMarkersGroup = (markersGroup: H.map.Group, animate: boolean = true) => { + const zoomOnMarkersGroup = (markersGroup: H.map.Group, animate: number | boolean = true) => { const DISTANCE_FACTOR = 0.1 const BEARING_TOP_LEFT = 315 const BEARING_BOTTOM_RIGHT = 135 @@ -138,14 +138,14 @@ export const HEREMap = forwardRef(({ if (viewBounds) { map.getViewModel().setLookAtData({ bounds: viewBounds }, animate, true) } } - const zoomOnMarkers = (animate: boolean = true, group: string = 'default') => { + const zoomOnMarkers = (animate: number | boolean = true, group: string = 'default') => { if (map) { if (!markersGroupsRef.current[group]) { return } zoomOnMarkersGroup(markersGroupsRef.current[group], animate) } } - const zoomOnMarkersSet = (markersSet: H.map.DomMarker[], animate: boolean = true) => { + const zoomOnMarkersSet = (markersSet: H.map.DomMarker[], animate: number | boolean = true) => { const markersGroupSet = new H.map.Group() markersSet.map((m) => markersGroupSet.addObject(m)) zoomOnMarkersGroup(markersGroupSet, animate)