การวาดทิศทางเส้นทางจากที่อยู่สตริงอินพุต 2 รายการบน MapView ใน Swift

ขณะนี้ฉันกำลังทำงานดังนี้:

  • สร้าง ViewController ที่มี MapView และ UIView (มี 2 textfields ที่ผู้ใช้จะป้อนที่อยู่)
  • การวาดเส้นทางทิศทางจาก 2 ที่อยู่ (ป้อนโดยช่องข้อความด้านบน) บนมุมมองแผนที่

ฉันพบบทช่วยสอนที่แสดงวิธีการกำหนดเส้นทาง แต่ส่วนใหญ่จะวาดจากตำแหน่งปัจจุบันไปยังปลายทางบางแห่ง
แนวคิดของฉันคือการรับข้อความจาก textfield แล้วแปลงเป็นพิกัดและทำเทคนิคการมอบหมายบางอย่าง

ใครช่วยแนะนำวิธีแก้ปัญหาให้ฉันหน่อยได้ไหม


person Duy Khanh Nguyen    schedule 12.10.2016    source แหล่งที่มา


คำตอบ (2)


คุณต้องใช้การเข้ารหัสแบบย้อนกลับทางภูมิศาสตร์โดยเปลี่ยนชื่อเมืองของคุณเป็นพิกัด

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

person Praveen Saraswat    schedule 12.10.2016

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

person Himanshu Moradiya    schedule 12.10.2016