feat: add getZoom and setZoom function support for Android Auto (#3037)

Co-authored-by: thanhdt1998 <thanhdt@vietmap.vn>
This commit is contained in:
Thanh Dang Trong
2024-11-22 05:14:49 +07:00
committed by GitHub
parent a44bcb1dbd
commit 06fb5c4733
2 changed files with 34 additions and 0 deletions

View File

@@ -759,6 +759,24 @@ public final class MapLibreMap {
nativeMapView.moveBy(x, y, duration);
}
/**
* Returns the current zoom level.
*/
public double getZoom() {
return nativeMapView.getZoom();
}
/**
* Zooms the camera to the specified level.
* @param zoom The zoom level to which the camera should move.
* @param focalPoint The point around which to zoom.
* @param duration The duration for the zoom animation
*/
public void setZoom(double zoom, @NonNull PointF focalPoint, long duration ) {
notifyDeveloperAnimationListeners();
nativeMapView.setZoom(zoom, focalPoint, duration);
}
//
// Reset North
//

View File

@@ -1,6 +1,7 @@
package org.maplibre.android.maps
import android.content.Context
import android.graphics.PointF
import org.maplibre.android.MapLibreInjector
import org.maplibre.android.camera.CameraPosition
import org.maplibre.android.camera.CameraUpdateFactory
@@ -244,4 +245,19 @@ class MapLibreMapTest {
maplibreMap.onFinishLoadingStyle()
verify(exactly = 1) { onStyleLoadedListener.onStyleLoaded(style) }
}
@Test
fun testGetZoom() {
maplibreMap.zoom
verify { nativeMapView.zoom }
assertEquals(maplibreMap.zoom, 0.0, 0.0)
}
@Test
fun testSetZoom() {
val target = PointF(100f, 100f)
maplibreMap.setZoom(2.0, target, 0)
verify { developerAnimationListener.onDeveloperAnimationStarted() }
verify { nativeMapView.setZoom(2.0, target, 0) }
}
}