我正在使用以下代码从我的项目中启动地图:
@IBAction func navigate(){
let mapLinksSchemeURL = URL(string: "http://maps.apple.com/?daddr=\(latitude),\(longitude)&t=s&dirflg=d")
UIApplication.shared.open(mapLinksSchemeURL!, options: [:], completionHandler: nil)
}
此代码首先启动Safari,然后继续启动Maps。这并不是特别精致。有没有办法跳过Safari并直接进入地图?
答案 0 :(得分:2)
你有一个URL,这就是为什么它在识别类型之前进入Safari并转到Apple Maps。
请使用以下代码直接转到Apple地图:
let regionDistance:CLLocationDistance = 10000
let coordinates = CLLocationCoordinate2DMake(latitude, longitude)
let regionSpan = MKCoordinateRegionMakeWithDistance(coordinates, regionDistance, regionDistance)
let options = [
MKLaunchOptionsMapCenterKey: NSValue(mkCoordinate: regionSpan.center),
MKLaunchOptionsMapSpanKey: NSValue(mkCoordinateSpan: regionSpan.span)
]
let placemark = MKPlacemark(coordinate: coordinates, addressDictionary: nil)
let mapItem = MKMapItem(placemark: placemark)
mapItem.name = "Start"
mapItem.openInMaps(launchOptions: options)