2015-08-20 24 views
2

這裏是情況,我想設置導航模式來根據當前速度調整縮放路線。看我的代碼:使用SKZoonLevelConfiguration啓用自動縮放功能

SKZoomLevelConfiguration[] zoomConfgs = new SKZoomLevelConfiguration[4]; 
zoomConfgs[0] = new SKZoomLevelConfiguration(0.0f, 10.0f, 15.0f); 
zoomConfgs[1] = new SKZoomLevelConfiguration(10.0f, 20.0f, 13.0f); 
zoomConfgs[2] = new SKZoomLevelConfiguration(20.0f, 60.0f, 10.0f); 
zoomConfgs[3] = new SKZoomLevelConfiguration(60.0f, 100.0f, 8.0f); 

SKNavigationSettings navSettings = new SKNavigationSettings(); 
navSettings.setNavigationType(SKNavigationSettings.SKNavigationType.REAL); 
navSettings.setNavigationMode(SKNavigationSettings.SKNavigationMode.CAR); 
navSettings.setDistanceUnit(SKMaps.SKDistanceUnitType.DISTANCE_UNIT_KILOMETER_METERS); 
navSettings.setZoomLevelConfigurations(zoomConfgs); 
navSettings.setPositionerVerticalAlignment(-0.25f); 

SKNavigationManager.getInstance().setNavigationListener(navListener); 
SKNavigationManager.getInstance().setMapView(surfaceView); 
surfaceView.getMapSettings().setMapDisplayMode(SKMapSettings.SKMapDisplayMode.MODE_3D); 
SKNavigationManager.getInstance().startNavigation(navSettings); 
isNavigating = true; 

所以這裏的事實是地圖不會在導航激活時縮放。也許我做錯了什麼。

回答

2

在2.5中,這個API有一個問題 - 固定爲2.6。

這裏是它如何工作在2.6的代碼片斷:

/** 
    * Launches a navigation on the current route 
    */ 
    private void launchNavigation() { 
     if (TrackElementsActivity.selectedTrackElement != null) { 
      mapView.clearTrackElement(TrackElementsActivity.selectedTrackElement); 

     } 
     // get navigation settings object 
     SKNavigationSettings navigationSettings = new SKNavigationSettings(); 
     // set the desired navigation settings 
     navigationSettings.setNavigationType(SKNavigationType.SIMULATION); 
     navigationSettings.setPositionerVerticalAlignment(-0.25f); 
     navigationSettings.setShowRealGPSPositions(false); 

     SKZoomLevelConfiguration[] configurations = new SKZoomLevelConfiguration[2]; 
     configurations[0] = new SKZoomLevelConfiguration(0, 70, 10); 
     configurations[1] = new SKZoomLevelConfiguration(70, 100, 15); 
     navigationSettings.setZoomLevelConfigurations(configurations); 
     // get the navigation manager object 
     SKNavigationManager navigationManager = SKNavigationManager.getInstance(); 
     navigationManager.setMapView(mapView); 
     // set listener for navigation events 
     navigationManager.setNavigationListener(this); 

     // start navigating using the settings 
     navigationManager.startNavigation(navigationSettings); 
     navigationInProgress = true; 
    } 

注:在SKZoomLevelConfigurations設定的速度值(公里/小時)是相關的,以當前速度(米/秒)從SKNavigationState。 當與當前速度有關的數據更新時,onUpdateNavigationState(SKNavigationState navigationState)方法會提供通知。

+0

所以,這意味着在2.6我應該設置SKZoomLevelConfiguration每米而不是公里每小時? – AlexSanchez

+0

下一個sdk發佈什麼時候排定? – AlexSanchez