🪶

SwiftUIアノテーションを表示する

2024/09/16に公開

iOSDC行ったときに道に迷った

早稲田大学の入り口ってどこだろうか?
同じ名前がついた建物が実はいっぱいある?

アノテーションなるものを使って入り口の場所をわかりやすくした。
Annotation構造体は、地図上に表示するビューのこと。

動くサンプル作ってみた。角丸のオブジェクトを地図上に表示してみた。

import SwiftUI
import MapKit

struct Location: Identifiable {
    let id = UUID()
    let name: String
    let coordinate: CLLocationCoordinate2D
}

struct UniversityView: View {
    @State private var region = MKCoordinateRegion(
        center: CLLocationCoordinate2D(latitude: 35.7090, longitude: 139.7216), // 早稲田大学の正門付近
        span: MKCoordinateSpan(latitudeDelta: 0.005, longitudeDelta: 0.005)
    )
    
    let locations = [
        Location(name: "早稲田大学正門", coordinate: CLLocationCoordinate2D(latitude: 35.7090, longitude: 139.7216))
    ]
    
    var body: some View {
        Map(coordinateRegion: $region, annotationItems: locations) { location in
            MapAnnotation(coordinate: location.coordinate) {
                VStack {
                    Text("入り口はここ!")
                    Image(systemName: "arrowshape.right")
                }
                .foregroundStyle(.blue)
                .padding()
                .background(in: .capsule)
            }
        }
    }
}

おっ分かりやすい!

感想

色んなマップアプリ見るのですが、「ここだよ」った目印があると親切だなと思った。アノテーションなるものを使って再現できるので参考になりそうであれば試してみてください。

Discussion