NavigationManager的startNavigation()有空白地图

时间:2017-03-03 22:31:56

标签: skmaps

我尝试使用SKNavigationManager的startNavigation(navigationSettings)进行转弯导航。有趣的是,它在'模拟'中完美无瑕。模式,但当我切换到' Real'模式屏幕上没有地图。只是地图没有在屏幕上绘制,但其余的注释和其他东西都填充并且工作正常。

我使用过SKToolsNavigatoinManager并且工作正常,但我不想使用它,因为它有很多对我的应用程序无用的UI界面。

感谢任何帮助。

以下是设置和导航代码我使用

SKNavigationSettings navigationSettings = new SKNavigationSettings();
SKNavigationManager navigationManager = SKNavigationManager.getInstance();
navigationSettings.setNavigationType(SKNavigationSettings.SKNavigationType.REAL);
navigationSettings.setNavigationMode(SKNavigationSettings.SKNavigationMode.PEDESTRIAN);
navigationManager.setMapView(navMapView);
navigationManager.startNavigation(navigationSettings);

如果我不使用navigationManager.setMapView(navMapView);我得到了不同的看法。

1. This is how the screen looks like after I start navigation
2. This is how the screen looks like before navigation

1 个答案:

答案 0 :(得分:1)

地图被绘制到屏幕上,它位于大西洋中部的点[0,0]的中心,因此屏幕是蓝色的。要让相机跟随当前位置,您必须执行以下两个步骤:

  1. 在SKMapView对象上将跟随位置设置为true:navMapView.getMapSettings().setFollowPositions(true);

  2. 创建SKCurrentPositionProvider并设置SKCurrentPositionListener

    SKCurrentPositionProvider positionProvider = new SKCurrentPositionProvider(activity);
    positionProvider.setCurrentPositionListener(new SKCurrentPositionListener(){
    
        @Override
        public void onCurrentPositionUpdate(SKPosition currentPosition) {
            SKPositionerManager.getInstance().reportNewGPSPosition(currentPosition);
    
        }
    
    });
    positionProvider.requestLocationUpdates(true, true, false);