SwiftUI 地图大全之 使用 MapKit 进行搜索

邵星光
2023-12-01

搜索地点是我们在应用程序中可能需要的一个有趣的功能。让我们用 SwiftUI 开发这个功能。

首先,让我们创建一个视图模型,其中包含一个确认 Observable 对象的类。此类具有发布搜索结果的 searchResults 变量。LocationManager 向“MKLocalSearchCompleterDelegate”确认,后者通过“completerDidUpdateResults”提供搜索结果。

class LocationManager: NSObject, ObservableObject, CLLocationManagerDelegate, MKLocalSearchCompleterDelegate {
    let manager = CLLocationManager()
    @Published var region: MKCoordinateRegion
    @Published var location: CLLocationCoordinate2D?
    @Published var name: String = ""
    @Published var search: String = ""

    @Published var searchResults = [MKLocalSearchCompletion]()
    var publisher: AnyCancellable?
    var searchCompleter = MKLocalSearchCompleter()

    override init() {
        let latitude = 0
        let longitude = 0
        self.region = MKCoordinateRegion(center:CLLocationCoordinate2D(latitude:
                                                
 类似资料: