【发布时间】:2017-05-02 05:43:56
【问题描述】:
我正在使用谷歌路线 API。当我发送请求时,我得到了一半的响应。 这是我的代码:
func getDirections(_ origin: String!, destination: String!, completionHandler: @escaping ((_ status: String, _ success: Bool) -> Void)) {
if let originLocation = origin {
if let destinationLocation = destination {
//var directionsURLString = baseURLDirections + "origin=" + "\(6.935299),\(79.880783)" + "&destination=" + "\(6.909411),\(79.894254)" + "&mode=driving"
var directionsURLString = "https://maps.googleapis.com/maps/api/directions/json?origin=Chicago,IL&destination=Los+Angeles,CA&waypoints=Joplin,MO|Oklahoma+City,OK&key=YOUR_API_KEY"
directionsURLString = directionsURLString.addingPercentEscapes(using: String.Encoding.utf8)!
let directionsURL = URL(string: directionsURLString)
DispatchQueue.main.async(execute: { () -> Void in
let directionsData = try? Data(contentsOf: directionsURL!)
var error: NSError?
NSLog("json: \(JSON(directionsData!))")
})
}
else {
NSLog("dest nil:")
completionHandler("Destination is nil.", false)
}
}
else {
NSLog("Origin nil:")
completionHandler("Origin is nil", false)
}
}
我得到的回应如下:
"routes" : [
{
"bounds" : {
"northeast" : {
"lat" : 41.8781139,
"lng" : -87.6297872
},
"southwest" : {
"lat" : 34.0523559,
"lng" : -118.2435736
}
},
"summary" : "I-55 S and I-44",
"warnings" : [
],
"copyrights" : "Map data ©2017 Google, INEGI",
"waypoint_order" : [
0,
1
],
"legs" : [
{
"via_waypoint" : [
],
"distance" : {
"value" : 932596,
"text" : "579 mi"
},
"start_location" : {
"lat" : 41.8781139,
"lng" : -87.6297872
},
"traffic_speed_entry" : [
],
"start_address" : "Chicago, IL, USA",
"end_address" : "Joplin, MO, USA",
"end_location" : {
"lat" : 37.0842313,
"lng" : -94.51348499999999
},
"duration" : {
"value" : 30893,
一半没有在控制台打印。这是什么原因??
【问题讨论】:
-
只是没有打印还是您没有收到?尝试在打印位置设置断点并在检查器中查看变量而不是打印它。
-
你得到了完整的回应,还不是一半。 print() 方法有时无法在控制台上正确打印长 JSON 数据。为了确认您可以在调试窗口中调试它。
-
是的,最初我打印状态,即使上面没有显示,它也会打印一个值 OK。但我试图打印为空的“way_pointArray”。
-
我把我的答案放在下面请检查我希望它对你有帮助我得到了整个回复
标签: swift google-places-api google-maps-sdk-ios google-directions-api