美文网首页
Swift 使用系统地图导航

Swift 使用系统地图导航

作者: 越天高 | 来源:发表于2020-05-20 11:08 被阅读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)
        
    }

相关文章

网友评论

      本文标题:Swift 使用系统地图导航

      本文链接:https://www.haomeiwen.com/subject/bnliohtx.html