2016-10-12 2 views
0

Я в настоящее время делает задачу, как показано ниже:Рисование направление маршрута от 2 ввода строки адреса на MapView в Swift

  • Создать ViewController содержит MapView и UIView (содержат 2 textfields, что пользователь будет вводить в адрес).
  • Рисование маршрута направления из 2-х адресов (введенных текстовыми полями) на вид карты.

Я нашел несколько руководств, которые показывают мне, как это сделать с помощью маршрутизации, но в основном путем рисования из текущего местоположения в какой-то пункт назначения.
Моя концепция - получить текст от textfield и преобразовать его в координаты и выполнить некоторые методы делегата.

Может ли кто-нибудь помочь мне решить, как его решить?

+0

вы использовали быстрый 2.0? или использовать swift 3.0? и упомяните об этом в своем вопросе –

+0

https://www.raywenderlich.com/87008/overlay-views-mapkit-swift-tutorial ?? –

+0

Попробуйте мой код, вы получите широту и долготу от своего местоположения, которое вы хотите передать. –

ответ

0

Вы должны использовать кодировку с обратной обратной связью, чтобы преобразовать название города в координату.

geocoder.reverseGeocodeLocation(currentLocation, completionHandler: { 
      placemarks, error in 

       if error == nil && placemarks.count > 0 { 
        self.placeMark = placemarks.last as? CLPlacemark 
        self.adressLabel.text = "\(self.placeMark!.thoroughfare)\n\(self.placeMark!.postalCode) \(self.placeMark!.locality)\n\(self.placeMark!.country)" 
        self.manager.stopUpdatingLocation() 
       } 
      }) 

Это руководство по рисованию линии между координатами пути. https://github.com/varshylmobile/MapManager

0
let address : CLLocationCoordinate2D = self.getLocation(String(Anand Nagar, Rustambaug Road, Surat, India, 395006)) 
print(address.latitude) 
print(address.longitude) 

func getLocation(address: String) -> CLLocationCoordinate2D { 

     var center : CLLocationCoordinate2D = CLLocationCoordinate2D() 
     let esc_addr: String = address.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)! 
     let req: String = "http://maps.google.com/maps/api/geocode/json?sensor=false&address=\(esc_addr)" 
     let responseData: NSData = NSData(contentsOfURL: NSURL(string: req)!)! 
     var _: NSError 
     var responseDictionary: [NSObject : AnyObject] = try! NSJSONSerialization.JSONObjectWithData(responseData, options: []) as! [NSObject : AnyObject] 
     var results: [AnyObject] = (responseDictionary["results"] as! [AnyObject]) 
     if results.count > 0 { 
      var firstItem: [NSObject : AnyObject] = (results[0] as! [NSObject : AnyObject]) 
      var geometry: [NSObject : AnyObject] = ((firstItem["geometry"] as! [NSObject : AnyObject])) 
      var location: [NSObject : AnyObject] = ((geometry["location"] as! [NSObject : AnyObject])) 
      print(location) 
      let lat = location["lat"] 
      let lng = location["lng"] 
      center.latitude = lat as! CLLocationDegrees 
      center.longitude = lng as! CLLocationDegrees 
      print(center) 
      return center 
     } 
     else { 
      center.latitude = 0 
      center.longitude = 0 
      return center 
     } 
    } 

Выход:

21,2173191

72,8664716

 Смежные вопросы

  • Нет связанных вопросов^_^