Search code examples
androidskmaps

SKMaps Navigation Language:how to change voice from meters to yards


My whole map is working but i need to change language from en to en_us. I mean i like to listen all distance in yards and miles instead of meters and kilometers. I changed the files from en to en_us but still i can listen all distance in meters not in yards. Kindly suggest me how to solve this issue. Thanks. Below is my code:

private void StartVoiceNavigation(MapAdvices currentMapAdvices) {
    final SKAdvisorSettings advisorSettings = new SKAdvisorSettings();

    advisorSettings.setLanguage(SKAdvisorSettings.SKAdvisorLanguage.LANGUAGE_EN_US);
    advisorSettings.setAdvisorConfigPath(app.getMapResourcesDirPath() + "/Advisor");
    advisorSettings.setResourcePath(app.getMapResourcesDirPath() + "/Advisor/Languages");
    advisorSettings.setAdvisorVoice("en_us");

    switch (currentMapAdvices) {
        case TEXT_TO_SPEECH:
            advisorSettings.setAdvisorType(SKAdvisorSettings.SKAdvisorType.TEXT_TO_SPEECH);
            break;
    }

    SKRouteManager.getInstance().setAdvisorSettings(advisorSettings);
    launchNavigation();
}

Solution

  • You must set the distance unit on your SKNavigationSettings object.

    SKNavigationSettings navigationSettings = new SKNavigationSettings();
    navigationSettings.setDistanceUnit(SKMaps.SKDistanceUnitType.DISTANCE_UNIT_MILES_YARDS);