Click or drag to resize

NavigationManagerMapMode Enumeration

Verizon Connect Logo
Print this page
Learn more about Verizon Connect GeoBase.
Get information about the latest release
Used to set MapControlMode

Namespace:  Telogis.GeoBase.Navigation
Assembly: (in Version:
public enum MapMode
  Member nameValueDescription
CrossoverZoom0 Zoom is dependent on the relationship between vehicle speed and crossover speed (the speed at which the zoom is changed).
FixedZooms1 Zoom is selectable (from a list), and not dependent on vehicle speed.
DynamicZooms2 Zoom is based on vehicle speed, and distance to the approaching navigation event. The speeds at which zooming occurs can be set by calling SetZoomAtSpeed(Int32, SpeedValue, TimeSpan). The distances from next navigation event at which zooming occurs can be set by calling SetZoomAtDistance(Int32, Double, DistanceUnit, TimeSpan).
ManualZoom3 Zoom is controlled by the application, not the NavigationManager.
In the first example below, CrossoverZoom is used to define the speed-dependent (as reported by the GPS unit) boundary between two zoom levels. At speeds below 50 km/h ('SlowZoom', the close zoom used at speeds below the zoom crossover speed) the zoom level is a high 0.1 resulting in a viewable area of approximately 100 meters. Traveling above the 50 km/h crossover speed ('FastZoom', the far zoom when traveling faster than the zoom crossover speed) results in a zoom level of 4, with a wider viewable area of approximately one city block. If speed never drops below the crossover speed (50 km/h), the NavigationManager will never switch to slow zoom and will always be in fast zoom.
nm.MapControlMode = NavigationManager.MapMode.CrossoverZoom;
nm.SetZoomCrossoverSpeed(50, SpeedUnit.KilometersPerHour);
nm.SlowZoom = 0.1;
nm.FastZoom = 4;
This second example demonstrates FixedZooms, in which fixed zoom levels independent of vehicle speed are set in the NavigationManager. In this example an array containing three fixed zoom levels (each containing a zoom level, perspective and orientation) is shown.
nm.MapControlMode = NavigationManager.MapMode.FixedZooms;
NavigationManager.ZoomLevel[] levels = new NavigationManager.ZoomLevel[]{
/*0*/ new NavigationManager.ZoomLevel(1.0, MapPerspective.TwoPointFiveD, MapOrientation.VehicleHeading),
/*1*/ new NavigationManager.ZoomLevel(4.0, MapPerspective.TwoPointFiveD, MapOrientation.VehicleHeading),
/*2*/ new NavigationManager.ZoomLevel(10.0, MapPerspective.TwoD, MapOrientation.VehicleHeading)
nm.ReplaceZoomLevels(levels, 3);
nm.Zoom = 1; // sets the zoom to 4.0 (you can call this anytime during navigation to change the zoom level)
This third example demonstrates DynamicZooms. DynamicZooms is used to specify a zoom level at a specific speed, and/or at a known distance from a destination. In the example below, three examples show SetZoomAtSpeed(Int32, SpeedValue, TimeSpan) (zoom levels of 150%, 300% and 600% at 20 km/h, 60 km/h and 100 km/h) The timespan dictates the time the zooming animation will take to complete (1, 2 and 4 seconds). The SetZoomAtDistance(Int32, Double, DistanceUnit, TimeSpan) example specifies a zoom level of 100% at 10 kilometers or less from the destination. Note that both SetZoomAtDistance(Int32, Double, DistanceUnit, TimeSpan) and SetZoomAtSpeed(Int32, SpeedValue, TimeSpan) can be used simultaneously, but SetZoomAtDistance will override SetZoomAtSpeed if zooms conflict. The SetZoomAtDistance distance value is the geodesic distance to the destination (as the crow flies), not the remaining route distance.
nm.MapControlMode = NavigationManager.MapMode.DynamicZooms;
nm.DynamicZoomSettings.Clear(); // Removes the default values
nm.DynamicZoomSettings.HysteresisLimit = new SpeedValue(5, SpeedUnit.KilometersPerHour);
nm.DynamicZoomSettings.SetZoomAtSpeed(150, new SpeedValue(20, SpeedUnit.KilometersPerHour), new TimeSpan(0, 0, 1));
nm.DynamicZoomSettings.SetZoomAtSpeed(300, new SpeedValue(60, SpeedUnit.KilometersPerHour), new TimeSpan(0, 0, 2));
nm.DynamicZoomSettings.SetZoomAtSpeed(600, new SpeedValue(100, SpeedUnit.KilometersPerHour), new TimeSpan(0, 0, 4));
nm.DynamicZoomSettings.SetZoomAtDistance(100, 10, DistanceUnit.KILOMETERS, new TimeSpan(0, 0, 2));
Note the HysteresisLimit property in the example above. Hysteresis is a buffer set between crossover levels that specifies the absolute minimum speed spacing between zoom levels. For example, a HysteresisLimit value of 15 dictates that no two crossover levels can be less than 15 km/h from one another. The HysteresisLimit also prevents the map zoom jumping between two zoom levels when speed sits near a zoom-out boundary. For example, with a crossover value of '50' and a HysteresisLimit value of '10', the map will zoom out when the vehicle speed reaches 50 km/h, but will not zoom in again until the vehicle's speed has dropped below 40 km/h. When a NavigationManager is constructed, three DynamicZooms crossover levels are set by default: 45 km/h, 65 km/h and 85 km/h with A default HysteresisLimit of 10 km/h. To clear these default values and set your own, DynamicZoomSettings.Clear(); should be used.
See Also