【问题标题】:iOS 10 NSUserActivity, Location Suggestions - MKMapItem Does not Appear in MapsiOS 10 NSUserActivity,位置建议 - MKMapItem 未出现在地图中
【发布时间】:2016-08-11 17:25:01
【问题描述】:

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

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

【问题讨论】:

    标签: ios swift wwdc


    【解决方案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
            }
        })
    

    【讨论】:

    • 我遇到了同样的问题:如果我通过将地图中的位置共享到我的应用程序来生成 MKMapItem,然后通过 NSUserActivity.mapItem 将相同的地图项共享回地图,它不会'不显示地名或似乎编码地理细节。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 2017-11-28
    • 1970-01-01
    • 2017-05-23
    相关资源
    最近更新 更多