NavigationManager 的 startNavigation() 有空白地图
NavigationManager's startNavigation() has blank map
我正在尝试使用 SKNavigationManager 的 startNavigation(navigationSettings) 进行逐向导航。有趣的是,它在 'Simulation' 模式下完美运行,但当我切换到 'Real' 模式时,屏幕上没有地图。只是地图没有绘制在屏幕上,但其余部分(如注释和其他内容)已填充并且工作正常。
我使用过 SKToolsNavigatoinManager,它工作正常,但我不想使用它,因为它有很多 UI 接口,这些接口对我的应用程序没有用。
感谢任何帮助。
这是我正在使用的设置和 navigationManager 代码
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
地图被绘制到屏幕上,它刚好以大西洋中部的点 [0,0] 为中心,因此屏幕是蓝色的。要让相机跟随当前位置,您必须执行以下 2 个步骤:
在您的 SKMapView 对象上将 follow positions 设置为 true:navMapView.getMapSettings().setFollowPositions(true);
创建一个 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);
我正在尝试使用 SKNavigationManager 的 startNavigation(navigationSettings) 进行逐向导航。有趣的是,它在 'Simulation' 模式下完美运行,但当我切换到 'Real' 模式时,屏幕上没有地图。只是地图没有绘制在屏幕上,但其余部分(如注释和其他内容)已填充并且工作正常。
我使用过 SKToolsNavigatoinManager,它工作正常,但我不想使用它,因为它有很多 UI 接口,这些接口对我的应用程序没有用。
感谢任何帮助。
这是我正在使用的设置和 navigationManager 代码
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
地图被绘制到屏幕上,它刚好以大西洋中部的点 [0,0] 为中心,因此屏幕是蓝色的。要让相机跟随当前位置,您必须执行以下 2 个步骤:
在您的 SKMapView 对象上将 follow positions 设置为 true:
navMapView.getMapSettings().setFollowPositions(true);
创建一个 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);