问题
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:
Because there is no cycle path between these points. Try to select bicycle: google maps
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
来源:https://stackoverflow.com/questions/41108020/unable-to-build-a-bicycle-route-in-google-maps