0

我从地址文本字段和 toAddress 文本字段传递了两个值,我需要像路由一样连接两个注释点。我不需要任何基于 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)


            }
    })


}


}
4

1 回答 1

0

您可以轻松获取两个注释坐标并在地图视图上绘制 MKGeodisicPoliline,如下面的代码所示。折线将有 2 个注释。

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

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

于 2016-03-17T19:56:58.697 回答