SwiftUI マップの現在位置表示

MapKitを使用して、現在位置を表示させます。

・マップ起動時の中心は東京で、画面表示範囲は約10km
・ピンチやズーム可能
・マップは画面全体に表示
・現在位置の表示ができ、移動すると追跡可能

import SwiftUI
import MapKit //地図や位置情報を扱うためのクラスや機能を提供

struct ContentView: View {
    @State private var locationManager = CLLocationManager()//デバイスの位置情報や方向を管理するクラス
    @State private var coordinateRegion = MKCoordinateRegion(//地図の表示領域を指定するための状態変数
        center: CLLocationCoordinate2D(
            latitude: 35.6809591,
            longitude: 139.7673068
        ), //東京の座標
        latitudinalMeters: 10000, //表示範囲。緯度10km
        longitudinalMeters: 10000 //表示範囲。経度10km
    )
    @State private var userTrackingMode: MapUserTrackingMode = .follow //ユーザーの位置追跡モード。.followで、ユーザーの位置を地図上で追跡。
    
    var body: some View {
        Map( //Mapビュー
            coordinateRegion: $coordinateRegion, //MKCoordinateRegionの状態を指定(必須)
            interactionModes: .all, //パンとズームの許可
            showsUserLocation: true, //現在位置の表示
            userTrackingMode: $userTrackingMode //現在位置を追跡
        )
        .edgesIgnoringSafeArea(.all) //セーフエリアを除外
        .onAppear{
            locationManager.requestWhenInUseAuthorization() //位置情報を使用する許可を求める為に使用
            locationManager.startUpdatingLocation() //デバイスの現在位置の更新を開始するために使用
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

この記事が気に入ったらサポートをしてみませんか?