使用MKMapView获取方向和路线

时间:2017-11-09 23:48:15

标签: swift mapkit

我一直在尝试使用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
    }
}

1 个答案:

答案 0 :(得分:1)

  

我一直在尝试使用MKMapView获取路线和路线,而不使用地图或谷歌地图应用。   我想在我的应用程序中使用它来打开其他应用程序。有人可以帮忙吗?

您无法在应用内启动导航。您可以做的是在两点之间绘制一条路径,并获取距离或预期驾驶/步行时间等信息。

搜索Distance between two points MapKit,您会发现一堆结果。例如,看一看hereherethis swift 4 soultion