Bahadir Erdem
let legs = itineraries[0]["legs"].arrayValue
for route in legs
{
let mode = route["mode"].string ?? "-"
let routeOverviewPolyline = route["legGeometry"].dictionary
let points = routeOverviewPolyline?["points"]?.stringValue
let path = GMSPath.init(fromEncodedPath: points!)
let polyline = GMSPolyline(path: path)
polyline.strokeColor = color
polyline.strokeWidth = 4
polyline.map = self.indexView.mapView
}
Este código se utiliza para dibujar líneas. Al igual que en la aplicación de Google Maps, quiero trazar la ruta a pie. Punteado y redondo. No pude encontrar un ejemplo.
Prueba esto:
extension GMSMapView {
func drawPolyline(_ pathString: String) -> GMSPolyline? {
guard let path = GMSPath(fromEncodedPath: pathString) else { return nil }
let polyline = GMSPolyline(path: path)
polyline.strokeWidth = 3.0
polyline.geodesic = true
let styles: [GMSStrokeStyle] = [.solidColor(.black), .solidColor(.clear)]
let scale = 1.0 / projection.points(forMeters: 1.0, at: camera.target)
let dashLength = NSNumber(value: 3.5 * Float(scale))
let gapLength = NSNumber(value: 3.0 * Float(scale))
polyline.spans = GMSStyleSpans(path, styles, [dashLength, gapLength], .rhumb)
polyline.map = self
return polyline
}
}
¿Ha sido útil esta solución?
Tu feedback nos ayuda a saber si la solución es correcta y está funcionando. De esta manera podemos revisar y corregir el contenido.