【问题标题】:Unable to build a bicycle route in Google maps无法在 Google 地图中建立自行车路线
【发布时间】:2016-12-12 19:21:11
【问题描述】:

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

status = "ZERO_RESULTS";

但是如果使用 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();
        }

【问题讨论】:

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


    【解决方案1】:

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

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

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

    结果

    【讨论】:

    • 没错。 Google 无法在您的点之间建造自行车道。您没有错误。
    • 我理解你的意思,我设置了自动模式。但不工作
    • 我添加了 swift 2.3 示例。尝试编译
    • 你能检查我的更新代码我无法工作
    • 您的答案完全正确但我不确定为什么我的更新部分代码不起作用我的主要目标是。获取用户当前位置和目的地以计算持续时间和公里。
    猜你喜欢
    • 2015-04-18
    • 2013-10-31
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多