无法在Google地图中构建自行车路线

时间:2016-12-12 19:21:12

标签: ios swift latitude-longitude google-distancematrix-api distance-matrix

我很奇怪!当我使用 origin1 destinationA 无效时

  

status =" ZERO_RESULTS";

但是如果使用 origin2 destinationB ,那么它完全正常工作我错过了什么

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();
        }

1 个答案:

答案 0 :(得分:2)

因为这些点之间没有循环路径。 尝试选择自行车:google maps

enter image description here

  

我试图骑自行车和开车。建造自行车路线是不可能的,并且车辆的路线存在

Swift 3 Full Sample

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 Full Sample

 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();
    }
}

结果

enter image description here