Sygic проблема в показе карты

У меня проблема с каркасом карт Sygic, я пытался показать карту с помощью этого кода в AppDelegate.swift

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        SYContext.initWithAppKey("mhives.sdk.trial", appSecret: "2nxScQJ0s/J6FsYJ67dlQ+MZLjLzOKc0s96l0t4YyLv2IH8b31b5vWgkzbfgJZ8FYEKQtxpLFGlwyfqEQ64MSQ==") { (initResult) in
        if (initResult == .success) {
            self.window = UIWindow(frame: UIScreen.main.bounds)
            let storyboard = UIStoryboard(name: "Main", bundle: nil)
            let initialViewController:ViewController = storyboard.instantiateViewController(withIdentifier: "ViewController") as! ViewController
            // Set that ViewController as the rootViewController
            self.window?.rootViewController = initialViewController
            self.window?.makeKeyAndVisible()
            initialViewController.sdkDidStart()

        } else {
            print("KO")
        }
    }
        return true
    }

ViewController.swift

class ViewController: UIViewController,SYMapViewDelegate,SYRoutingDelegate {
let mapView = SYMapView()
let routing = SYRouting()
    override func viewDidLoad() {
        super.viewDidLoad()
    }

    func mapView(_ mapView: SYMapView, didFinishInitialization success: Bool) {
        let tiltFor2D: SYAngle = 0
        mapView.tilt = tiltFor2D
        self.mapView.zoom = 10
        self.mapView.rotation = 180
        self.mapView.geoCenter = SYGeoCoordinate(latitude: 48.147, longitude: 17.101878)!
        self.mapView.frame = self.view.bounds
        view.addSubview(self.mapView)

    }

    func computeRoute(from fromCoordinate: SYGeoCoordinate, to toCoordinate: SYGeoCoordinate) {
        // Create an instance of SYRouting


        // Make self a delegate for SYRouting to receive and handle SYRoutingDelegate responses

        // Create SYWaypoint from coordinate. Set correct SYWaypointType for start and finish.
        let startWaypoint = SYWaypoint(position: fromCoordinate, type: .start, name: nil)
        let endWaypoint = SYWaypoint(position: toCoordinate, type: .end, name: nil)

        // Optionally: create an instance of SYRoutingOptions for configuring computing of a route
        let routingOptions = SYRoutingOptions()
        routingOptions.transportMode = .pedestrian // For other options see SYTransportMode
        routingOptions.routingType = .economic// For other options see SYRoutingType

        // Start computing route
        self.routing.computeRoute(startWaypoint, to: endWaypoint, via: nil, with: routingOptions)
    }

    func routing(_ routing: SYRouting, computingFailedWithError error: SYRoutingError) {
        print(error.rawValue)
    }

    func routing(_ routing: SYRouting, didComputePrimaryRoute route: SYRoute?) {
        SYNavigation.shared().start(with: route)

        // You might want to put it also on the map

        let mapRoute = SYMapRoute(route: route!, type: .primary)
        mapView.add(mapRoute)
    }

Теперь я пытаюсь просто показать карты Sygic, но не получил его, и я получаю это сообщение в отладчике "Sygic: W 18/08/19 17:04:51 Нет сеанса единого входа, невозможно отправить запрос http!"

func sdkDidStart(){

           mapView.delegate = self
            routing.delegate = self

            self.mapView.frame = self.view.bounds
            self.view.addSubview(self.mapView)
            let start = SYGeoCoordinate(latitude: 37.276758, longitude: 9.864160900000002)
            let end = SYGeoCoordinate(latitude: 37.25408, longitude:  9.906733)
            //computeRoute(from: start!, to: end!)
        }

Любая помощь, пожалуйста

1 ответ

Прежде всего, у вас есть действительный ключ и секрет? Если нет, вы можете запросить один здесь: https://www.sygic.com/business/request-sygic-mobile-sdk-api-key?product=mobileSdk Я понимаю, что вы не используете реальный здесь в качестве примера, но по крайней мере Похоже, ошибка, которую вы используете, недействительна.

Другое дело, когда вы инициализируете свой SYMapView? Если вы загружаете ViewController например, в качестве начального контроллера представления с использованием раскадровки он попытается загрузить экземпляр представления карты и все его базовые компоненты до полной загрузки SDK. Будьте осторожны, вы должны работать с SDK только после его успешной инициализации.

Так что проверьте свои ключи API и попробуйте инициализировать этот контроллер представления в SYContext.initWithAppKey() обработчик завершения.

Другие вопросы по тегам