Sygic GPS, Navigation is the world’s most downloaded Offline GPS navigation app, trusted by more than 200 million drivers. Offline 3D maps are stored on your phone for GPS navigation without an internet connection.
If you've ever watched a television commercial and felt for sure that you knew the voice-over artist from somewhere, chances are, you're right. While it's nice to imagine that the entertainment industry offers up a never-ending supply of meaty roles for actors, in many cases, commercial work offers a lucrative payday—one untethered to the demands of spending months on a movie set.
Voice guidance with turn-by-turn instructions in natural language or text-to-speech is available in more than 40 languages. You can set up the language of your voice guidance by going to Menu - Settings - Regional - Voice. Voice-guided navigation is one of the Premium features, you can get it by purchasing one of our Lifetime Premium licenses. FREE auditions from professional voice over talent, voice actors & artists online. Find & hire at the world's best voiceover service website & directory. An online voiceover marketplace that connects professional voice actors with producers, agencies, and anyone needing a voice recording.
- Navigation
- Move to section
Position Manager
There are several ways how to work with your Position in SygicMapsSDK. You can leave everything to the SDK, or you can use the CustomPositionUpdater and pass it your own values. Let's get straight into it. To to get and see your position, you simply need to initialize the PositionManager and start the location updating:
Note: always get the managers after initializing the engine!
The SDK chooses between the Google Play services location APIs ( uses the FusedLocationProviderClient and PRIORITY_HIGH_ACCURACY) or the Android framework location APIs depending on whether you have Google Play Services enabled.
Note: You need to request the location permission from the user, else the location won't work. Starting from Android 10 you also need to put
The SDK chooses between the Google Play services location APIs ( uses the FusedLocationProviderClient and PRIORITY_HIGH_ACCURACY) or the Android framework location APIs depending on whether you have Google Play Services enabled.
Note: You need to request the location permission from the user, else the location won't work. Starting from Android 10 you also need to put
![Celeb Celeb](https://is3-ssl.mzstatic.com/image/thumb/Purple118/v4/cc/9b/a5/cc9ba5df-2ad0-c77a-e32d-15eca0b257a7/source/392x696bb.jpg)
![Celeb Celeb](https://i.ytimg.com/vi/l6kNlM6-PeU/maxresdefault.jpg)
in your manifest file.
If you would like to show the 'Allow all the time' option when requesting a permission, you will also need the ACCESS_BACKGROUND_LOCATION permission.
You can read more about the permissions on Android 10 and higher on the official Android Developer site.
If you would like to show the 'Allow all the time' option when requesting a permission, you will also need the ACCESS_BACKGROUND_LOCATION permission.
You can read more about the permissions on Android 10 and higher on the official Android Developer site.
Custom position updater
Otherwise, you can use the CustomPositionUpdater to update your position in SygicMapsSDK. You can pass any coordinates that you read from a file beforehand, get from a server or get from the Android Location module etc. Let's see how to integrate the Android Location module updates:
Navigation Warnings
The Sygic Android SDK supports navigation on pedestrian and car routes. Using this feature, your app can check the current device position against a calculated route and provide just-in-time navigational instructions, both as visual and voice instructions. Turn-by-Turn Navigation Mode, which takes the calculated route and matches the current position against the route is supported for walking and driving.
While navigating, application can register a listener for warning notifications and display all of these notifications. All the types of notifications are listed in NavigationManager class. The following table shows the name of the available listeners and the information provided by them.
Listener name | Function |
---|---|
OnBetterRouteListener | Whether a faster route has been found |
OnDirectionListener | Whether the direction has chnaged |
OnSpeedLimitListener | Whether the user has exceeded the speed limit |
OnSignpostListener | Whether the signpost has updated |
OnLaneListener | Whether the lane information has changed |
OnPlaceListener | Whether the nearby place info has changed |
OnIncidentListener | Whether and icident is ahead |
OnRailwayCrossingListener | Whether a railway crossing is ahead |
OnHighwayExitListener | Whether a highway exit is ahead |
OnSharpCurveListener | Whether a sharp curve is ahead |
OnWaypointPassListener | Whether the vehicle passed by a waipoint |
OnTrafficChangedListener | Whether the traffic data has updated |
OnRouteChangedListener | Whether the route has changed |
OnRecomputeProgressListener | Whether the route recompute progress has changed (100 is the max value) |
OnBatteryCapacityListener | Whether the battery capacity has changed (new in version 17) |
WaypointOutOfRangeListener | Whether any waypoint becomes out of reach (new in version 17.x) |
Registering a listener has the following pattern:
Don't forget to unregister the listener when you don't need it.
![Voice Voice](https://image.slidesharecdn.com/sygic-141002054807-phpapp02/95/sygic-gps-navigation-4-638.jpg?cb=1412232723)
Map Matching During Navigation
Map Matching is automatically enabled in both navigation mode and tracking mode. In simulation mode, the map-matched position is simulated along the route with a user-defined speed.
Handling route changes when you steer away from the route
When you leave the route that you have chosen for navigation, the SDK handles the recompute internally and sets the new route for navigation as well. All you need to do is to remove the old MapRoute and add a new one, using the route that you get in the onRouteChanged listener callback.
Voice Instructions
Voice instructions are available in the Sygic SDK as voice packages. Voice packages are available in two forms: pre-packaged or downloadable through the voice catalog. You can set a voice package to be used for navigational instructions.
The Sygic SDK supports two types of voice packages: text-to-speech or pre-recorded. Pre-recorded voice skins provide basic maneuver instructions, such as 'turn right in 100 meters', while text-to-speech voices also support spoken street names, such as 'turn right in 100 meters onto Wall Street'.
![Voice Voice](https://is3-ssl.mzstatic.com/image/thumb/Purple118/v4/05/14/84/051484f2-59a8-a837-4b0a-b42e66d25ebc/source/552x414bb.jpg)
At first, you need to get the VoiceManager and VoiceDownload and register them:
The following code shows how to get the list of installed voices and how to set the voice:
To get all the available voices, you call VoiceDownload.getAvailableVoices():
Then you can download voices.
You can register an AudioInstructionListener in which you can either tell our SDK to play the instruction (returning false from the method, like below) or play any information from the direction info however you want (in that case, you need to return true in the callback).
This is a list of the potential TTS languages that are supported. Actual audio playback depends on the supported languages in the user's installed version of Android.
- English (US)
- English (UK)
- French (France)
- French (Canada)
- German
- Spanish (Spain)
- Spanish (Mexico)
- Indonesian
- Italian
- Norwegian
- Portugese (Portugal)
- Portugese (Brazil)
- Russian
- Swedish
- Finnish
- Danish
- Korean
- Chinese (Taiwanese Mandarin)
- Turkish
- Czech
- Polish
Traffic
Traffic information show traffic incidents on the map. Traffic visualization requires a network data connection to download real time traffic information. However, traffic information may continue to be displayed thereafter without a connection until the traffic events expire or the visibility is toggled.
Signposts
Signs represent textual and graphic information which are along the route. The information is always represented as text or pictogram. Signpost information may be used for route guidance and map display. A navigation system may prefer using the signpost text rather than the street/ramp name as the latter may not always match what is on the sign in reality and may confuse a user. The signpost feature supports the user navigating through complex situations and provides a conformation for a maneuver by presenting the same direction information as shown on the street signs in reality.
Based on the map attributes, the Sygic Android Mobile SDKs aggregate the following information into a Signpost object:
- Route number
- Exit number
- Exit name
- Pictogram
- Place name
- Background color
- Text color
Following example shows, how to get these information from the data structure, which the Android SDK offers.
Directions
To provide more detailed information in signpost, you can display the direction which the user should follow. The Directions feature allows developers to define and display routes between a start and a destination point within their application. NavigationManager.OnDirectionListener can return the following information:
![Celeb Voice Sygic Celeb Voice Sygic](https://i.ytimg.com/vi/wo7JRGu03g0/maxresdefault.jpg)
- Direction distance
- Next direction distance
- Maneuver type - see the all available ManeuverTypes
- Current and next road names
- Current and next road numbers
- Whether you are in a tunnel and the remaining distance to its end
The following example shows how to get these information from the data structure, which the Android SDK offers.
With these data now you just have to draw them into your view and create your own signposts. For example like this:
Junction Info
Junction info is one of our advanced safety features. When you are approaching a complex highway intersection, a SingpostJunctionInfo object will be set in a OnSignpostListener. It contains info about lanes both continuing on highway and on the exit. You can then display this information, eg. as full screen diagram.
When you have SignpostJunctionInfo with
getFromLanesCount() 5
, getToLeftLanesCount() 4
, getToRightLanesCount() 2
, it can be displayed as shown below.Speed Limit
Speed limits indicate the legal speed for a vehicle. You can get the value either in mph or in km/h. You can register OnSpeedLimitListener to receive events about speed limit change. The class containing information about speed limit is SpeedLimitInfo.
Route Simulation
You can quickly start a route simulation by requesting an instance of RouteDemonstrateSimulator and passing it the computed route:
Do not forget to call .stop() upon cancelling the route or if you no longer need the simulation to prevent unwanted behavior.
Also please note that you need to call the navigationManager's setRouteForNavigation before starting the simulator.
Do not forget to call .stop() upon cancelling the route or if you no longer need the simulation to prevent unwanted behavior.
Also please note that you need to call the navigationManager's setRouteForNavigation before starting the simulator.