MapKit
MapKit
MapKit yordamida xaritalar va annotatsiyalarni ko‘rsating, Core Location yordamida foydalanuvchi joylashuvini so‘rang va marshrutlarni chizing (render).
Oddiy xarita (hudud)
Koordinata hududini bog‘lash orqali xaritani ko‘rsating. SwiftUI’da Map dan foydalanish uchun MapKit ni import qiling.
Sintaksis:
@State private var position: MapCameraPosition = .region(MKCoordinateRegion(...))Map(position: $position)
Misol
import SwiftUI
import MapKit
struct BasicMap: View {
@State private var position: MapCameraPosition = .region(
MKCoordinateRegion(
center: CLLocationCoordinate2D(latitude: 37.3349, longitude: -122.0090),
span: MKCoordinateSpan(latitudeDelta: 0.05, longitudeDelta: 0.05)
)
)
var body: some View {
Map(position: $position)
.ignoresSafeArea()
}
}
import SwiftUI
struct ContentView: View {
var body: some View { BasicMap() }
}
import SwiftUI
@main
struct MyApp: App {
var body: some Scene {
WindowGroup { ContentView() }
}
}
Ushbu misol xaritani o‘rtacha masshtab bilan Apple Park markaziga joylashtiradi.
Annotatsiyalar
Muayyan koordinatalarga markerlar yoki maxsus annotatsiyalar qo‘shing.
Sintaksis:
@State private var position: MapCameraPosition = .region(MKCoordinateRegion(...))Map(position: $position) { Marker("Title", coordinate: ...) }Annotation("Title", coordinate: ...) { View }
Misol
import SwiftUI
import MapKit
struct MarkersMap: View {
@State private var position: MapCameraPosition = .region(
MKCoordinateRegion(
center: CLLocationCoordinate2D(latitude: 37.3349, longitude: -122.0090),
span: MKCoordinateSpan(latitudeDelta: 0.05, longitudeDelta: 0.05)
)
)
let places = [
("Park", CLLocationCoordinate2D(latitude: 37.3349, longitude: -122.0090)),
("Cafe", CLLocationCoordinate2D(latitude: 37.3327, longitude: -122.0053))
]
var body: some View {
Map(position: $position) {
ForEach(places, id: \.0) { name, coord in
Marker(name, coordinate: coord)
}
}
}
}
import SwiftUI
struct ContentView: View {
var body: some View { MarkersMap() }
}
import SwiftUI
@main
struct MyApp: App {
var body: some Scene {
WindowGroup { ContentView() }
}
}
Ushbu misol hudud atrofiga ikkita oddiy marker qo‘shadi.
Maps’da ochish
Joylashuv yoki yo‘nalishlarni Apple Maps ilovasida ochish uchun MKMapItem dan foydalaning.
Sintaksis:
let item = MKMapItem(placemark:)item.openInMaps(launchOptions:)
Misol
import MapKit
func openDirections() {
let dest = MKMapItem(placemark: MKPlacemark(coordinate: .init(latitude: 37.3349, longitude: -122.0090)))
dest.name = "Apple Park"
dest.openInMaps(launchOptions: [MKLaunchOptionsDirectionsModeKey: MKLaunchOptionsDirectionsModeDriving])
}
import SwiftUI
struct ContentView: View {
var body: some View {
Button("Open Directions") { openDirections() }
.padding()
}
}
import SwiftUI
@main
struct MyApp: App {
var body: some Scene {
WindowGroup { ContentView() }
}
}
Ushbu misol Apple Maps’ni manzil koordinatasigacha avtomobil yo‘nalishlari bilan ochadi.
Maslahat: Xaritalarda foydalanuvchi joylashuvidan foydalanishdan oldin joylashuv ruxsatlarini so‘rang.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
