2016-03-17 57 views
0

我传递了两个值从地址文本字段和地址文本字段,我需要连接两个注释点,如路线。我不需要基于api的任何指示。只需要连接。我如何连接两个注释点?

import UIKit 
import MapKit 
import CoreLocation 
import Contacts 

class ViewController: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate { 

@IBOutlet weak var fromAddress: UITextField! 
@IBOutlet weak var toAddress: UITextField! 
@IBOutlet weak var map: MKMapView! 

let locationManager = CLLocationManager() 
var location = CLLocation!.self 

@IBAction func getDirection(sender: AnyObject) { 

    ConnectingFromAndTo(fromAddress.text!) 
    ConnectingFromAndTo(toAddress.text!) 
} 


override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib.} 
} 

func ConnectingFromAndTo(address: String){ 

    CLGeocoder().geocodeAddressString(address, completionHandler: 
     {(placemarks, error) in 

      if error != nil { 
       print("Geocode failed with error: \(error!.localizedDescription)") 
      } else if placemarks!.count > 0 { 
       let placemark = placemarks![0] 
       let location = placemark.location 


       let annotation = MKPointAnnotation() 
       annotation.coordinate = location!.coordinate 
       annotation.title = "\(placemark.locality!)" 
       annotation.subtitle = "\(placemark.country!)" 
       self.map.addAnnotation(annotation) 

       self.map.setRegion(MKCoordinateRegionMake(CLLocationCoordinate2DMake (placemark.location!.coordinate.latitude, placemark.location!.coordinate.longitude), MKCoordinateSpanMake(0.002, 0.002)), animated: true) 


      } 
    }) 


} 


} 

回答

0

您可以很容易地获得两个注释坐标并在地图视图中绘制MKGeodisicPoliline,如下面的代码所示。多段线将有2个注释。

var geodesicPolyline = MKGeodesicPolyline(coordinates: &coordinates[0], count: 2) 
map.addOverlay(geodesicPolyline) 

其中坐标数组具有注释的位置坐标对象。

+0

您好如何传递存储在位置管理器功能 FUNC的LocationManager坐标(经理:CLLocationManager,didUpdateLocations位置:[CLLocation]) 我需要连接存储在位置** **阵列的坐标,第n个和第n-1个 –