Как я могу нарисовать маршрут пешком (точка) - PullRequest
0 голосов
/ 01 октября 2019
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
}

Этот код используется для рисования линий. Как и в приложении Google Maps, я хочу построить пешеходный маршрут. Пунктирная и круглая. Я не смог найти пример.

1 Ответ

0 голосов
/ 25 октября 2019

Попробуйте это:

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
   }
}
...