Fixing initial map region

This commit is contained in:
Selim Mustafaev 2025-05-18 22:59:41 +03:00
parent 9fca82d2d9
commit 48c700fc13
2 changed files with 28 additions and 2 deletions

View File

@ -1661,7 +1661,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_ENTITLEMENTS = AutoCat/AutoCat.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 165;
CURRENT_PROJECT_VERSION = 166;
DEVELOPMENT_TEAM = 46DTTB8X4S;
INFOPLIST_FILE = AutoCat/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = AutoCat;
@ -1690,7 +1690,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_ENTITLEMENTS = AutoCat/AutoCat.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 165;
CURRENT_PROJECT_VERSION = 166;
DEVELOPMENT_TEAM = 46DTTB8X4S;
INFOPLIST_FILE = AutoCat/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = AutoCat;

View File

@ -75,6 +75,7 @@ final class MapViewModel: ACHudContainer {
title = String.localizedStringWithFormat(NSLocalizedString("events found", comment: ""), events.count)
await clusterManager.add(markers)
await reloadMarkers()
currentRegion = getRegion(for: markers)
}
}
@ -112,4 +113,29 @@ final class MapViewModel: ACHudContainer {
}
}
}
func getRegion(for markers: [MapMarkerModel]) -> MKCoordinateRegion {
guard !markers.isEmpty else {
return .init()
}
let latitudes = markers.map(\.coordinate.latitude)
let longitudes = markers.map(\.coordinate.longitude)
let minLat = latitudes.min() ?? 0
let maxLat = latitudes.max() ?? 0
let minLong = longitudes.min() ?? 0
let maxLong = longitudes.max() ?? 0
return .init(
center: .init(
latitude: (maxLat - minLat)/2,
longitude: (maxLong - minLong)/2
),
span: .init(
latitudeDelta: (maxLat - minLat)*1.2,
longitudeDelta: (maxLong - minLong)*1.2
)
)
}
}