swift – openInMapsWithLaunchOptions无效吗?

前端之家收集整理的这篇文章主要介绍了swift – openInMapsWithLaunchOptions无效吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在传递地图选项,但这似乎与缩放级别没有任何关系?它保持相同的低缩放级别.
我错过了什么?
func openMapForPlace() {
    let regionDistance:CLLocationDistance = 10000
    var coordinates = CLLocationCoordinate2DMake(detailItem!.geoLatitude,detailItem!.geoLongitude)
    let regionSpan = MKCoordinateRegionMakeWithDistance(coordinates,regionDistance,regionDistance)
    var options = [
        MKLaunchOptionsMapCenterKey: NSValue(MKCoordinate: regionSpan.center),MKLaunchOptionsMapSpanKey: NSValue(MKCoordinateSpan: regionSpan.span)
    ]
    var placemark = MKPlacemark(coordinate: coordinates,addressDictionary: nil)
    var mapItem = MKMapItem(placemark: placemark)
    mapItem.name = detailItem!.cityName
    mapItem.openInMapsWithLaunchOptions(options)
}
Apple的文档没有提及它,但是从测试来看,如果将一个或多个MKMapItem添加到地图中,似乎openInMapsWithLaunchOptions()似乎忽略了MKLaunchOptionsMapSpanKey选项.

以下代码按预期工作,修改距离参数时正确调整地图缩放(尝试使用1000和10000000,以查看差异):

func openMapForPlace() {
    let regionDistance: CLLocationDistance = 10000000
    let coordinates = CLLocationCoordinate2DMake(40,0)
    let regionSpan = MKCoordinateRegionMakeWithDistance(coordinates,regionDistance)
    let options = [
        MKLaunchOptionsMapCenterKey: NSValue(MKCoordinate: regionSpan.center),MKLaunchOptionsMapSpanKey: NSValue(MKCoordinateSpan: regionSpan.span)
    ]

    MKMapItem.openMapsWithItems([],launchOptions: options)
}

但是,只要将一个MKMapItem添加到地图中,缩放就会停止工作.

func openMapForPlace() {
    let regionDistance: CLLocationDistance = 10000000
    let coordinates = CLLocationCoordinate2DMake(40,MKLaunchOptionsMapSpanKey: NSValue(MKCoordinateSpan: regionSpan.span)
    ]

    let placemark = MKPlacemark(coordinate: coordinates,addressDictionary: nil)
    let mapItem = MKMapItem(placemark: placemark)
    mapItem.name = "Test"

    MKMapItem.openMapsWithItems([mapItem],launchOptions: options)
}

猜你在找的Swift相关文章