0

我很奇怪!当我使用 origin1destinationA时不起作用

状态=“零结果”;

但是如果使用origin2destinationB它工作得很好我错过了什么吗

var origin = "55.930385, -3.118425"
var destination = "50.087692, 14.421150"

  override func viewDidLoad() {
    super.viewDidLoad()
    durationDestance(origin: origin, destination: destination, mode:"bicycling")
  }
 func durationDestance(origin: String, destination: String, mode:String) {

            var urlString : String = "https://maps.googleapis.com/maps/api/distancematrix/json?origins=\(origin)&destinations=\(destination)&mode=\(mode)&key=AIzaSyAVOt9LLagNGSOI8O0ri1Sbahcl_q5AFYc";

            urlString = urlString.addingPercentEncoding(withAllowedCharacters: .urlFragmentAllowed)!
            let session = URLSession.shared
            let url = URL(string:urlString)!
            session.dataTask(with: url) { (data: Data?, response: URLResponse?, erorr: Error?) -> Void in

                print("url: \(urlString)")
                if let responseData = data {
                    do{
                        let json = try JSONSerialization.jsonObject(with: responseData, options: JSONSerialization.ReadingOptions.allowFragments);
                        print(json);
                    }
                    catch{
                        print("do not serialization :)");
                    }
                }
                }.resume();
        }
4

1 回答 1

2

因为这些点之间没有循环路径。尝试选择自行车:谷歌地图

在此处输入图像描述

我试着用自行车和汽车开辟一条路线。自行车路线是不可能建的,自驾路线是存在的

Swift 3 完整示例

import UIKit

class ViewController: UIViewController {

    var origin = "55.930385, -3.118425"
    var destination = "50.087692, 14.421150"

    override func viewDidLoad() {
        super.viewDidLoad()
        durationDestance(origin: origin, destination: destination, mode:"bicycling")
        durationDestance(origin: origin, destination: destination, mode:"auto")
    }

    func durationDestance(origin: String, destination: String, mode:String) {

        var urlString : String = "https://maps.googleapis.com/maps/api/distancematrix/json?origins=\(origin)&destinations=\(destination)&mode=\(mode)&key=AIzaSyAVOt9LLagNGSOI8O0ri1Sbahcl_q5AFYc";

        urlString = urlString.addingPercentEncoding(withAllowedCharacters: .urlFragmentAllowed)!
        let session = URLSession.shared
        let url = URL(string:urlString)!
        session.dataTask(with: url) { (data: Data?, response: URLResponse?, erorr: Error?) -> Void in

            print("url: \(urlString)")
            if let responseData = data {
                do{
                    let json = try JSONSerialization.jsonObject(with: responseData, options: JSONSerialization.ReadingOptions.allowFragments);
                    print(json);
                }
                catch{
                    print("do not serialization :)");
                }
            }
            }.resume();
    }
}

Swift 2.3 完整示例

 import UIKit

class ViewController: UIViewController {

    var origin = "55.930385, -3.118425"
    var destination = "50.087692, 14.421150"

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        durationDestance(origin, destination: destination, mode:"bicycling")
        durationDestance(origin, destination: destination, mode:"auto")
    }

    func durationDestance(origin: String, destination: String, mode:String) {

        var urlString : String = "https://maps.googleapis.com/maps/api/distancematrix/json?origins=\(origin)&destinations=\(destination)&mode=\(mode)&key=AIzaSyAVOt9LLagNGSOI8O0ri1Sbahcl_q5AFYc";

        urlString = urlString.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLFragmentAllowedCharacterSet())!

        let session=NSURLSession.sharedSession();
        let url=NSURL(string:urlString)!
        session.dataTaskWithURL(url) { (data: NSData?,response: NSURLResponse?,erorr :NSError?) -> Void in
            print("url: \(urlString)")
            if let responseData=data{
                do{
                    let json=try NSJSONSerialization.JSONObjectWithData(responseData, options: NSJSONReadingOptions.AllowFragments);
                    print(json);
                }
                catch{
                    print("do not serialization :)");
                }
            }
            }.resume();
    }
}

结果

在此处输入图像描述

于 2016-12-12T21:28:37.273 回答