Я создаю приложение, в котором должны быть указаны направления.Я столкнулся с проблемой, когда мою полилинию нарисовали в GoogleMap.Все, что мне нужно, это отобразить общее расстояние до места, предполагаемое время в пути, расстояние до следующего поворота, улицу поворота и изображение, показывающее, в каком направлении направляется пользователь.
Я понятия не имею, как это сделатьэтот.Вся помощь была бы фантастической!
Этот фрагмент кода - это код, который получает указания от моего API Google, а затем отображает на карте многоугольную линию.
func getPolylineRoute(from source: CLLocationCoordinate2D, to destination: CLLocationCoordinate2D){
let config = URLSessionConfiguration.default
let session = URLSession(configuration: config)
let url = URL(string: "https://maps.googleapis.com/maps/api/directions/json?origin=\(source.latitude),\(source.longitude)&destination=\(destination.latitude),\(destination.longitude)&key=APIKEY&sensor=false")!
let task = session.dataTask(with: url, completionHandler: {
(data, response, error) in
if error != nil {
print(error!.localizedDescription)
}
else {
do {
if let json : [String:Any] = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as? [String: Any]{
guard let routes = json["routes"] as? NSArray else {
DispatchQueue.main.async {
}
return
}
if (routes.count > 0) {
let overview_polyline = routes[0] as? NSDictionary
let dictPolyline = overview_polyline?["overview_polyline"] as? NSDictionary
let points = dictPolyline?.object(forKey: "points") as? String
self.showPath(polyStr: points!)
DispatchQueue.main.async {
let bounds = GMSCoordinateBounds(coordinate: source, coordinate: destination)
let update = GMSCameraUpdate.fit(bounds, with: UIEdgeInsets(top: 170, left: 30, bottom: 30, right: 30))
self.mapView!.moveCamera(update)
}
}
else {
DispatchQueue.main.async {
}
}
}
}
catch {
print("error in JSONSerialization")
DispatchQueue.main.async {
}
}
}
})
task.resume()
}
эти точки - то, что я хочудля отображения пользователю.
@IBOutlet weak var directionImage: UIImageView!
@IBOutlet weak var totalDistanceD: UILabel!
@IBOutlet weak var totalTimeD: UILabel!
@IBOutlet weak var nextStreetD: UILabel!
@IBOutlet weak var distanceNxtStreetD: UILabel!