4

我正在尝试将地点建议显示在“您想去哪里?”下的列表中的 Apple 地图中。iOS 10 中的 NSUserActivity 现在有一个 mapItem 属性,我使用一个 MKMapItem 来设置它,该 MKMapItem 是我使用地理坐标和地名制作的 MKPlacemark 创建的。

当我去地图时,地名没有出现,因为它应该出现。在经历了 WWDC 2016, session 240 几次之后,我仍然找不到我做错了什么。

4

1 回答 1

1

mapItem 必须来自获取您的地理坐标和地名的 MKLocalSearch 请求。您从 MKLocalSearchResponse 获得的 mapItems 是 Apple Maps 将接受的。

    let coordinate = CLLocationCoordinate2D(latitude: 38.89005200, longitude: -77.00251600)
    var points = [MKMapPointForCoordinate(coordinate)]
    let mapRect = MKPolygon(points: &points, count: 1).boundingMapRect
    let region = MKCoordinateRegionForMapRect(mapRect)
    let request = MKLocalSearchRequest()
    request.naturalLanguageQuery = "Supreme Court Historical Society"
    request.region = region
    let localSearch:MKLocalSearch = MKLocalSearch(request: request)

    localSearch.start(completionHandler: { (response:MKLocalSearchResponse?, error:Error?) in
        if error == nil {
            activity.mapItem = response!.mapItems[0]
            var userInfo = [String: AnyObject]()
            userInfo["placemark"] = NSKeyedArchiver.archivedData(withRootObject: activity.mapItem.placemark)
            activity.userInfo = userInfo
            activity.contentAttributeSet?.supportsNavigation = true
            activity.contentAttributeSet?.supportsPhoneCall = true
        }
    })
于 2016-08-11T17:30:15.177 回答