Я пытаюсь нарисовать маршрут направления для двух местоположений. Я использую эту функцию для маршрутизации. Проблема в том, что она не работает для местоположений, которые были нарисованы ранее. Даже я закрываю приложение и запускаю снова, но оно не работает для предыдущегокоординаты, как только я изменяю данный широту или долготу, это работает для нового маршрута!есть идеи?
func route(){
let origin = "35.6800,51.3819"
let destination = "35.6820,51.3769"
let urlString = "https://maps.googleapis.com/maps/api/directions/json?origin=\(origin)&destination=\(destination)&mode=driving&key=\(googleApiKey)"
let url = URL(string: urlString)
URLSession.shared.dataTask(with: url!, completionHandler: {
(data, response, error) in
if(error != nil){
print("error")
}else{
do{
let json = try JSONSerialization.jsonObject(with: data!, options:.allowFragments) as! [String : AnyObject]
let routes = json["routes"] as! NSArray
self.mapView.clear()
OperationQueue.main.addOperation({
var route = routes[0] as! NSDictionary
let routeOverviewPolyline:NSDictionary = (route as! NSDictionary).value(forKey: "overview_polyline") as! NSDictionary
let points = routeOverviewPolyline .object(forKey: "points")
let path = GMSPath.init(fromEncodedPath: points! as! String)
let polyline = GMSPolyline.init(path: path)
polyline.strokeWidth = 3
let bounds = GMSCoordinateBounds(path: path!)
self.mapView!.animate(with: GMSCameraUpdate.fit(bounds, withPadding: 30.0))
polyline.map = self.mapView
//}
})
}catch let error as NSError{
print("error:\(error)")
}
}
}).resume()
}