Полилиния iOS15 не отображается на карте.

Я попытался добавить полилинию от местоположения пользователя к месту назначения, используя следующий код. Я уверен, что я выполнил делегат и удостоверился, что пользователь находится в режиме authorAlway в статусе авторизации. Однако консоль сгенерировала это сообщение об ошибке, в котором говорилось: « [UserSession] сопоставляет запрошенный короткий сеанс, но совместное использование сеанса не включено ». Я не могу найти ничего, связанного с тем, как решить эту ошибку.

          func generatePolyLine(toDestination destination: MKMapItem) {
    
    let request = MKDirections.Request()
    //start from the user's current location to find the ride
    request.source = MKMapItem.forCurrentLocation()
    request.destination = destination
    request.transportType = .automobile

    let directionRequest = MKDirections(request: request)

    directionRequest.calculate { response, error in
        if let error = error {
            print("Error calculating direction request \(error)")
        }
        guard let response = response else { return }
        self.route = response.routes.first
        guard let polyLine = self.route?.polyline else { return }
        self.mapView.addOverlay(polyLine, level: .aboveRoads)
        
    }
}

1 ответ

Вы добавили метод делегата, чтобы указать средство визуализации? Что-то типа:

      func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
    if let polyline = overlay as? MKPolyline {
        let renderer = MKPolylineRenderer(polyline: polyline)
        renderer.lineWidth = 3.0
        renderer.alpha = 0.5
        renderer.strokeColor = UIColor.blue
        
        return renderer
    }
    if let circle = overlay as? MKCircle {
        let renderer = MKCircleRenderer(circle: circle)
        renderer.lineWidth = 3.0
        renderer.alpha = 0.5
        renderer.strokeColor = UIColor.blue
        
        return renderer
    }
    return MKCircleRenderer()
}
Другие вопросы по тегам