Неверный URL-адрес API карты Google с путевыми точками с использованием Swift и Alamofire - PullRequest
0 голосов
/ 08 мая 2019

Я пытаюсь нарисовать направление списка точек на карте Google с помощью API направления карт Google, я использую alamofire для сетевого запроса, когда я пытаюсь получить ответные данные JSON с помощью своего браузера, это работает хорошо, и он возвращает нужные данные, но когда я использую запрос alamofire, я получаю эту ошибку ответа:

URL-адрес недействителен

это мой код:

        let headers: HTTPHeaders = [ "Accept": "application/json", "Content-Type": "application/json" ]

        let url = "https://maps.googleapis.com/maps/api/directions/json?origin= 33.85735529390786,35.48763965724007&destination=33.86317291423991,35.49212425947189&mode=driving&waypoints=|21.4276001,39.2765001|21.4025001,39.2744001|21.7728001,39.1931001|21.7081001,39.1044001&key=myKey"

          Alamofire.request(url, method: .post, parameters: nil, encoding: JSONEncoding.default, headers: headers).responseJSON { (response) in

                    print(response.request as Any)  // original URL request
                    print(response.response as Any) // HTTP URL response
                    print(response.data as Any)     // server data
                    print(response.result as Any)   // result of response serialization
                    do{
                        let json = try JSON(data: response.data!)
                        let routes = json["routes"].arrayValue

                        // print route using Polyline
                        for route in routes{
                            let routeOverviewPolyline = route["overview_polyline"].dictionary
                            let points = routeOverviewPolyline?["points"]?.stringValue
                            let path = GMSPath.init(fromEncodedPath: points!)
                            let polyline = GMSPolyline.init(path: path)
                            polyline.strokeWidth = 4
                            polyline.strokeColor = UIColor.blue
                            polyline.map = self.mapView
                        }
                    }catch let error {
   print(error.localizedDescription)
                    }


                }

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 08 мая 2019

Вам нужно добавить addingPercentEncoding.

  var url = "https://maps.googleapis.com/maps/api/directions/json?origin= 33.85735529390786,35.48763965724007&destination=33.86317291423991,35.49212425947189&mode=driving&|21.4276001,39.2765001|21.4025001,39.2744001|21.7728001,39.1931001|21.7081001,39.1044001&key=myKey"

  url = url.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
0 голосов
/ 08 мая 2019

Попробуйте

1002 *
...