地理编码
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)
}
网友评论