Junior — Middle
Cum se poate implementa afișarea mai multor straturi de zoom pentru utilizator în MapKit?
sobes.tech AI
Răspuns de la AI
În MapKit, pentru a afișa mai multe niveluri de zoom (niveluri de scalare), se pot folosi mai multe abordări:
-
Adăugarea mai multor suprapuneri (MKOverlay) cu diferite niveluri de detaliu, care sunt activate sau dezactivate în funcție de nivelul de scalare curent al hărții.
-
Utilizarea delegatului
mapView(_:regionDidChangeAnimated:), pentru a urmări schimbările de scalare și a schimba dinamic straturile afișate.
Exemplu de cod în Swift pentru comutarea straturilor în funcție de nivelul de scalare:
func mapView(_ mapView: MKMapView, regionDidChangeAnimated animated: Bool) {
let zoomLevel = mapView.region.span.latitudeDelta
if zoomLevel < 0.01 {
// Afișează stratul detaliat
mapView.addOverlay(detailedOverlay)
mapView.removeOverlay(lessDetailedOverlay)
} else {
// Afișează stratul mai puțin detaliat
mapView.addOverlay(lessDetailedOverlay)
mapView.removeOverlay(detailedOverlay)
}
}
Astfel, se poate gestiona afișarea diferitelor straturi în funcție de nivelul de scalare curent al hărții.