我从地址文本字段和地址文本字段传递了两个值,我需要像路径一样连接两个注释点。我不需要任何基于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 :(得分:0)
您可以轻松获取两个注释坐标并在地图视图上绘制MKGeodisicPoliline,如下面的代码所示。折线将有2个注释。
var geodesicPolyline = MKGeodesicPolyline(coordinates: &coordinates[0], count: 2)
map.addOverlay(geodesicPolyline)
其中coordinates数组具有注释的位置坐标对象。