NavigationManagerMapMode Enumeration | |
Print this page
Learn more about Verizon Connect GeoBase.
Get information about the latest release
Namespace:
Telogis.GeoBase.Navigation
Assembly:
geobase.net (in geobase.net.dll) Version: 4.99.0.0
Syntax Public Enumeration MapMode
Members
| Member name | Value | Description |
---|
| CrossoverZoom | 0 |
Zoom is dependent on the relationship between vehicle speed and crossover speed (the speed at which the zoom is changed).
|
| FixedZooms | 1 |
Zoom is selectable (from a list), and not dependent on vehicle speed.
|
| DynamicZooms | 2 |
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).
|
| ManualZoom | 3 |
Zoom is controlled by the application, not the NavigationManager.
|
Examples
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[]{
new NavigationManager.ZoomLevel(1.0, MapPerspective.TwoPointFiveD, MapOrientation.VehicleHeading),
new NavigationManager.ZoomLevel(4.0, MapPerspective.TwoPointFiveD, MapOrientation.VehicleHeading),
new NavigationManager.ZoomLevel(10.0, MapPerspective.TwoD, MapOrientation.VehicleHeading)
};
nm.ReplaceZoomLevels(levels, 3);
nm.Zoom = 1;
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();
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