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()
}
}
この記事が気に入ったらサポートをしてみませんか?