我一直在尝试使用MKMapView获取路线和路线,而不使用地图或谷歌地图应用。 我想在我的应用程序中使用它来打开其他应用程序。 有人可以帮忙吗?
这是我所拥有的,但我想改变它,以便我可以在我的应用程序上获得方向和路由。我有Swift 4和Xcode 9!
//Getting direction of location
@objc func getDirections(){
if let selectedPin = selectedPin {
let mapItem = MKMapItem(placemark: selectedPin)
let launchOptions = [MKLaunchOptionsDirectionsModeKey : MKLaunchOptionsDirectionsModeDriving]
mapItem.openInMaps(launchOptions: launchOptions)
}
}
extension ViewController : MKMapViewDelegate {
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView?{
if annotation is MKUserLocation {
//return nil so map view draws "blue dot" for standard user location
return nil
}
let reuseId = "pin"
var pinView = mapView.dequeueReusableAnnotationView(withIdentifier: reuseId) as? MKPinAnnotationView
pinView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: reuseId)
pinView?.pinTintColor = UIColor.red
pinView?.canShowCallout = true
let smallSquare = CGSize(width: 30, height: 30)
let button = UIButton(frame: CGRect(origin: CGPoint.zero, size: smallSquare))
button.setBackgroundImage(UIImage(named: "Car"), for: .normal)
button.addTarget(self, action: #selector(getDirections), for: .touchUpInside)
pinView?.leftCalloutAccessoryView = button
return pinView
}
}
答案 0 :(得分:1)
我一直在尝试使用MKMapView获取路线和路线,而不使用地图或谷歌地图应用。 我想在我的应用程序中使用它来打开其他应用程序。有人可以帮忙吗?
您无法在应用内启动导航。您可以做的是在两点之间绘制一条路径,并获取距离或预期驾驶/步行时间等信息。
搜索Distance between two points MapKit
,您会发现一堆结果。例如,看一看here,here或this swift 4 soultion