Unable to build a bicycle route in Google maps

2019-09-12 02:04发布

i am wonder ! when i using origin1 and destinationA not working

status = "ZERO_RESULTS";

but if used origin2 and destinationB it is working perfectly do i missed anything

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条回答
贪生不怕死
2楼-- · 2019-09-12 02:39

Because there is no cycle path between these points. Try to select bicycle: google maps

enter image description here

I tried to make a route by bike and car. It is impossible to build a bicycle route, and the route by car exists

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

Result

enter image description here

查看更多
登录 后发表回答