有没有办法在 NavigationStarted 上获取 SKPostion?
Is there any way to get the SKPostion on NavigationStarted?
我正在尝试获取导航时在路线上行驶的点(坐标)。 SKnavigationState 不提供正在进行的路线导航的任何 latlon 坐标。
如何在进行导航时获取用户在路线上的位置坐标?
有多种方法可以做到这一点:
- 您可以通过 SKPositionLoggingManager
创建日志文件来记录所有记录的位置
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" 位置)
我正在尝试获取导航时在路线上行驶的点(坐标)。 SKnavigationState 不提供正在进行的路线导航的任何 latlon 坐标。
如何在进行导航时获取用户在路线上的位置坐标?
有多种方法可以做到这一点:
- 您可以通过 SKPositionLoggingManager 创建日志文件来记录所有记录的位置
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" 位置)