Swift 使用系统地图导航

2020-05-20  本文已影响0人  越天高

地理编码

    lazy var geoCoder : CLGeocoder =
    {
        return CLGeocoder()
    }()
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?)
    {
        geoCoder.geocodeAddressString("南京")
        { (marks, error) in
            let njMark = marks?.first
            
            self.geoCoder.geocodeAddressString("济南")
            { (marks, error) in
                let jnMark = marks?.first
                
                self.beginNavigation(startMark: njMark!, endMark: jnMark!)
            }
            
        }
        
    }

//设置好地图参数,以及出发点和结束地点

func beginNavigation(startMark : CLPlacemark, endMark : CLPlacemark)
    {
        //起点
        let starMK : MKPlacemark = MKPlacemark(placemark: startMark)
        let startItem : MKMapItem = MKMapItem(placemark: starMK)
        
        //终点
        let endMK : MKPlacemark = MKPlacemark(placemark: endMark)
        let endItem : MKMapItem = MKMapItem(placemark: endMK)
        
        //起点和w终点
        
        let mapItems = [ startItem, endItem]
        //设置导航字典
        let dict : [String : Any] = [
            //导航模式
            MKLaunchOptionsDirectionsModeKey : MKLaunchOptionsDirectionsModeDriving,
            //地图样式
            MKLaunchOptionsMapTypeKey : MKMapType.standard.rawValue,
            //显示交通
            MKLaunchOptionsShowsTrafficKey : true
        
        ]
        MKMapItem.openMaps(with: mapItems, launchOptions: dict)
        
    }
上一篇 下一篇

猜你喜欢

热点阅读