MapKit


ULASHISH

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() }
  }
}

Misolni ishga tushirish »

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() }
  }
}

Misolni ishga tushirish »

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() }
  }
}

Misolni ishga tushirish »

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!