显示地图的 Sygic 问题
Sygic issue in showing the map
我的 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 No SSO session, unable to send http request!"
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!)
}
请帮忙
首先你有有效的密钥和秘密吗?如果没有,您可以在这里申请一个:https://www.sygic.com/business/request-sygic-mobile-sdk-api-key?product=mobileSdk
我知道你在这里没有使用真实的例子,但至少错误似乎是你使用的那个是无效的。
另一件事是,你什么时候初始化你的SYMapView
?例如,如果您使用故事板加载 ViewController
作为初始视图控制器,那么它会在 SDK 完全加载之前尝试加载地图视图实例及其所有底层组件。请注意,只有在成功初始化后才能使用 SDK。
因此请检查您的 API 键并尝试在 SYContext.initWithAppKey()
完成处理程序中初始化该视图控制器。
我的 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 No SSO session, unable to send http request!"
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!)
}
请帮忙
首先你有有效的密钥和秘密吗?如果没有,您可以在这里申请一个:https://www.sygic.com/business/request-sygic-mobile-sdk-api-key?product=mobileSdk 我知道你在这里没有使用真实的例子,但至少错误似乎是你使用的那个是无效的。
另一件事是,你什么时候初始化你的SYMapView
?例如,如果您使用故事板加载 ViewController
作为初始视图控制器,那么它会在 SDK 完全加载之前尝试加载地图视图实例及其所有底层组件。请注意,只有在成功初始化后才能使用 SDK。
因此请检查您的 API 键并尝试在 SYContext.initWithAppKey()
完成处理程序中初始化该视图控制器。