有没有办法在 NavigationStarted 上获取 SKPostion?

Is there any way to get the SKPostion on NavigationStarted?

我正在尝试获取导航时在路线上行驶的点(坐标)。 SKnavigationState 不提供正在进行的路线导航的任何 latlon 坐标。

如何在进行导航时获取用户在路线上的位置坐标?

有多种方法可以做到这一点:


    private void startNavigation() 
    { 
        //..... navigation settings 
        if (configuration.getNavigationType() == SKNavigationSettings.SKNavigationType.REAL) { 
            navigationSettings.setNavigationType(SKNavigationSettings.SKNavigationType.REAL); 
            Date date = new Date(); 
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss"); 
            final File navigationLogsFolder =  new File(Environment.getExternalStorageDirectory() + File.separator + "LogFileName" + File.separator); 
            if (!navigationLogsFolder.exists()) { 
                navigationLogsFolder.mkdirs(); 
            } 
            final String fileName = navigationLogsFolder.getAbsolutePath() + "/" + dateFormat.format(date); 
            SKPositionLoggingManager.getInstance().startLoggingPositions(fileName, SKPositionLoggingManager.SPositionLoggingType.SK_POSITION_LOGGING_TYPE_LOG); 
        } 
        navigationManager.startNavigation(navigationSettings); 
    } 
</pre>
当您想停止记录过程时,请调用 SKPositionLoggingManager().stopLoggingPositions() 

  • 当收到位置更新(或任何其他时间)时,您可以通过 getCurrentGPSPosition API(通过 matched 参数你可以询问真实位置或 "matched on road" 位置)