# Track zoom in broken?

**URL:** <https://community.thinkgeo.com/t/track-zoom-in-broken/3321>\
**Category:** WPF\
**Created:** [November 6, 2012, 6:26pm UTC](https://community.thinkgeo.com/t/track-zoom-in-broken/3321 "2012-11-06T18:26:58Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Steve1](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/s/3da27b/32.png) [@Steve1](https://community.thinkgeo.com/u/Steve1)\
**Post date:** [November 6, 2012, 6:26pm UTC](https://community.thinkgeo.com/t/track-zoom-in-broken/3321/1 "2012-11-06T18:26:58Z")

</div>

Hi

The&nbsp;behaviour&nbsp;of&nbsp;track&nbsp;zoom&nbsp;in&nbsp;seems&nbsp;to&nbsp;have&nbsp;changed&nbsp;between&nbsp;6.0.0&nbsp;and&nbsp;the&nbsp;latest&nbsp;version&nbsp;I&nbsp;tried&nbsp;(6.0.174)

In&nbsp;v6.0&nbsp;I&nbsp;could&nbsp;configure&nbsp;the&nbsp;map&nbsp;so&nbsp;that&nbsp;when&nbsp;I&nbsp;clicked&nbsp;and&nbsp;dragged&nbsp;a&nbsp;box&nbsp;allowed&nbsp;me&nbsp;to&nbsp;zoom.&nbsp;In&nbsp;v6.0.174&nbsp;the&nbsp;same&nbsp;settings&nbsp;pan&nbsp;the&nbsp;map&nbsp;and&nbsp;I&nbsp;have&nbsp;to&nbsp;hold&nbsp;the&nbsp;shift&nbsp;key&nbsp;to&nbsp;zoom.

Here&nbsp;is&nbsp;the&nbsp;code&nbsp;I&nbsp;use&nbsp;to&nbsp;configure&nbsp;the&nbsp;map.&nbsp;I&nbsp;set&nbsp;MapMode&nbsp;to&nbsp;MapMode.TrackZoomIn.

&nbsp;

`public MapMode MapMode{	get { return _mode; }	set	{ _mode = value; switch (_mode) { case MapMode.TrackZoomIn: { UpdateMode(KernPanMode.Off, KernZoomMode.On, KernTrackMode.Off, KernEditMode.Off, Cursors.Cross); break; } case MapMode.Pan: { UpdateMode(KernPanMode.On, KernZoomMode.Off, KernTrackMode.Off, KernEditMode.Off, Cursors.SizeAll); break; } case MapMode.SelectJob: case MapMode.SelectAsset: { UpdateMode(KernPanMode.Off, KernZoomMode.Off, KernTrackMode.Off, KernEditMode.Off, Cursors.Hand); break; } case MapMode.AddAsset: { UpdateMode(KernPanMode.Off, KernZoomMode.Off, KernTrackMode.On, KernEditMode.Off, Cursors.Pen); break; } case MapMode.EditAsset: { UpdateMode(KernPanMode.Off, KernZoomMode.Off, KernTrackMode.Off, KernEditMode.On, Cursors.Pen); break; }	   }	}}private void UpdateMode(KernPanMode panMode, KernZoomMode zoomMode, KernTrackMode trackMode, KernEditMode editMode,	System.Windows.Input.Cursor cursor){	PanMode = panMode == KernPanMode.On ? MapPanMode.StandardPanning : MapPanMode.Disabled;	LeftClickDragKey = zoomMode == KernZoomMode.On ? Keys.None : Keys.Shift;	LeftClickDragMode = zoomMode == KernZoomMode.On ? MapLeftClickDragMode.Default : MapLeftClickDragMode.Disabled;	DoubleLeftClickMode = zoomMode == KernZoomMode.On ? MapDoubleLeftClickMode.Default : MapDoubleLeftClickMode.Disabled; if (trackMode == KernTrackMode.Off)	{ _gisMap.TrackOverlay.TrackMode = TrackMode.None;	}	if (editMode == KernEditMode.Off)	{ EndEdit();	}	_gisMap.Cursor = cursor;}`

---

<div class="post-metadata">

**Author:** ![Edgar](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/e/b487fb/32.png) [@Edgar](https://community.thinkgeo.com/u/Edgar)\
**Post date:** [November 8, 2012, 11:12pm UTC](https://community.thinkgeo.com/t/track-zoom-in-broken/3321/2 "2012-11-08T23:12:16Z")

</div>

Hi&nbsp;Steve,&nbsp;  
&nbsp;&nbsp;  
&nbsp;I&nbsp;remember&nbsp;that&nbsp;I’ve&nbsp;worked&nbsp;on&nbsp;this&nbsp;before,&nbsp;at&nbsp;that&nbsp;time,&nbsp;you&nbsp;created&nbsp;a&nbsp;class&nbsp;which&nbsp;inherit&nbsp;the&nbsp;InteractiveOverlay&nbsp;right?&nbsp;Could&nbsp;you&nbsp;please&nbsp;provide&nbsp;your&nbsp;sample&nbsp;to&nbsp;us&nbsp;to&nbsp;have&nbsp;a&nbsp;test?&nbsp;  
&nbsp;&nbsp;  
&nbsp;Thanks,&nbsp;  
&nbsp;Edgar

---

<div class="post-metadata">

**Author:** ![Steve1](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/s/3da27b/32.png) [@Steve1](https://community.thinkgeo.com/u/Steve1)\
**Post date:** [November 21, 2012, 1:49pm UTC](https://community.thinkgeo.com/t/track-zoom-in-broken/3321/3 "2012-11-21T13:49:38Z")

</div>

Hi&nbsp;Edgar

Here&nbsp;is&nbsp;my&nbsp;class&nbsp;that&nbsp;inherits&nbsp;from&nbsp;ExtentInteractiveOverlay.&nbsp;When&nbsp;I&nbsp;first&nbsp;show&nbsp;my&nbsp;map&nbsp;I&nbsp;set&nbsp;the&nbsp;mode&nbsp;to&nbsp;TrackZoomIn.&nbsp;This&nbsp;sets&nbsp;PanMode&nbsp;to&nbsp;Disabled.&nbsp;In&nbsp;v6.0&nbsp;all&nbsp;works&nbsp;as&nbsp;expected.&nbsp;In&nbsp;v6.0.157&nbsp;pan&nbsp;mode&nbsp;is&nbsp;not&nbsp;disabled.

&nbsp;

`using System.Windows.Forms;using Kern.Client.Windows.Data;using ThinkGeo.MapSuite.Core;using ThinkGeo.MapSuite.WpfDesktopEdition;using Cursors = System.Windows.Input.Cursors;namespace Kern.Client.Windows.Controls.MapOverlays{    public class ModeInteractiveOverlay : ExtentInteractiveOverlay    {        private MapMode _mode;        private readonly WpfMap _gisMap;        public ModeInteractiveOverlay(WpfMap gisMap)        {            _gisMap = gisMap;            LeftClickDragMode = MapLeftClickDragMode.Default;            DoubleLeftClickMode = MapDoubleLeftClickMode.Default;        }        public MapMode MapMode        {            get { return _mode; }            set            {                _mode = value;                switch (_mode)                {                    case MapMode.TrackZoomIn:                        {                            UpdateMode(KernPanMode.Off, KernZoomMode.On, KernTrackMode.Off, KernEditMode.Off, Cursors.Cross);                            break;                        }                    case MapMode.Pan:                        {                            UpdateMode(KernPanMode.On, KernZoomMode.Off, KernTrackMode.Off, KernEditMode.Off, Cursors.SizeAll);                            break;                        }                    case MapMode.SelectJob:                    case MapMode.SelectAsset:                        {                            UpdateMode(KernPanMode.Off, KernZoomMode.Off, KernTrackMode.Off, KernEditMode.Off, Cursors.Hand);                            break;                        }                    case MapMode.AddAsset:                        {                            UpdateMode(KernPanMode.Off, KernZoomMode.Off, KernTrackMode.On, KernEditMode.Off, Cursors.Pen);                            break;                        }                    case MapMode.EditAsset:                        {                            UpdateMode(KernPanMode.Off, KernZoomMode.Off, KernTrackMode.Off, KernEditMode.On, Cursors.Pen);                            break;                        }                }            }        }        private void UpdateMode(KernPanMode panMode, KernZoomMode zoomMode, KernTrackMode trackMode, KernEditMode editMode,            System.Windows.Input.Cursor cursor)        {            PanMode = panMode == KernPanMode.On ? MapPanMode.StandardPanning : MapPanMode.Disabled;            LeftClickDragKey = zoomMode == KernZoomMode.On ? Keys.None : Keys.Shift;            LeftClickDragMode = zoomMode == KernZoomMode.On ? MapLeftClickDragMode.Default : MapLeftClickDragMode.Disabled;            DoubleLeftClickMode = zoomMode == KernZoomMode.On ? MapDoubleLeftClickMode.Default : MapDoubleLeftClickMode.Disabled;                        if (trackMode == KernTrackMode.Off)            {                _gisMap.TrackOverlay.TrackMode = TrackMode.None;            }            if (editMode == KernEditMode.Off)            {                EndEdit();            }            _gisMap.Cursor = cursor;        }        private void EndEdit()        {            if (_gisMap.EditOverlay.EditShapesLayer.InternalFeatures.Count > 0)            {                Feature feature = _gisMap.EditOverlay.EditShapesLayer.InternalFeatures[0];                _gisMap.EditOverlay.EditShapesLayer.InternalFeatures.Clear();                _gisMap.EditOverlay.CalculateAllControlPoints();                _gisMap.EditOverlay.EditShapesLayer.InternalFeatures.Add(feature);                _gisMap.Refresh(new Overlay[] { _gisMap.EditOverlay });            }        }    }    enum KernPanMode    {        Off,        On    }    enum KernZoomMode    {        Off,        On    }    enum KernTrackMode    {        Off,        On    }    enum KernEditMode    {        Off,        On    }}`

---

<div class="post-metadata">

**Author:** ![Edgar](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/e/b487fb/32.png) [@Edgar](https://community.thinkgeo.com/u/Edgar)\
**Post date:** [November 21, 2012, 9:32pm UTC](https://community.thinkgeo.com/t/track-zoom-in-broken/3321/4 "2012-11-21T21:32:44Z")

</div>

Steve,

I&nbsp;test&nbsp;your&nbsp;code&nbsp;with&nbsp;6.0.157.0&nbsp;without&nbsp;pressing&nbsp;the&nbsp;shift&nbsp;key,&nbsp;it&nbsp;works&nbsp;as&nbsp;expected,&nbsp;here&nbsp;is&nbsp;the&nbsp;[screencast&nbsp;screencast.com/t/57HZYUJEln](http://www.screencast.com/t/57HZYUJEln)&nbsp;,&nbsp;is&nbsp;there&nbsp;any&nbsp;difference&nbsp;between&nbsp;your&nbsp;code&nbsp;and&nbsp;mine?

Regards,

Edgar

---

<div class="post-metadata">

**Author:** ![Steve1](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/s/3da27b/32.png) [@Steve1](https://community.thinkgeo.com/u/Steve1)\
**Post date:** [November 22, 2012, 1:28pm UTC](https://community.thinkgeo.com/t/track-zoom-in-broken/3321/5 "2012-11-22T13:28:11Z")

</div>

Thanks&nbsp;Edgar&nbsp;  
&nbsp;&nbsp;  
&nbsp;Your&nbsp;code&nbsp;showed&nbsp;me&nbsp;that&nbsp;I&nbsp;had&nbsp;configured&nbsp;ModeInteractiveOverlay&nbsp;incorrectly.&nbsp;  
&nbsp;&nbsp;  
&nbsp;I&nbsp;did&nbsp;this:&nbsp;  
&nbsp;&nbsp;  
&nbsp;&nbsp;&nbsp;gisMap.InteractiveOverlays.Add(modeInteractiveOverlay);&nbsp;  
&nbsp;&nbsp;  
&nbsp;&nbsp;  
&nbsp;Rather&nbsp;than&nbsp;this:&nbsp;  
&nbsp;&nbsp;  
&nbsp;&nbsp;&nbsp;gisMap.ExtentOverlay&nbsp;=&nbsp;modeInteractiveOverlay;&nbsp;  
&nbsp;&nbsp;  
&nbsp;I’m&nbsp;surprised&nbsp;it&nbsp;ever&nbsp;worked!&nbsp;  
&nbsp;&nbsp;  
&nbsp;Cheers&nbsp;  
&nbsp;&nbsp;  
&nbsp;Steve

---

<div class="post-metadata">

**Author:** ![Edgar](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/e/b487fb/32.png) [@Edgar](https://community.thinkgeo.com/u/Edgar)\
**Post date:** [November 22, 2012, 7:49pm UTC](https://community.thinkgeo.com/t/track-zoom-in-broken/3321/6 "2012-11-22T19:49:37Z")

</div>

You’re&nbsp;welcome&nbsp;Steve,&nbsp;it&nbsp;the&nbsp;old&nbsp;way&nbsp;I&nbsp;think&nbsp;it’s&nbsp;a&nbsp;bug&nbsp;to&nbsp;make&nbsp;more&nbsp;than&nbsp;one&nbsp;extentOverlay&nbsp;to&nbsp;work.&nbsp;Glad&nbsp;to&nbsp;hear&nbsp;that&nbsp;your&nbsp;problem&nbsp;has&nbsp;been&nbsp;solved.&nbsp;  
&nbsp;&nbsp;  
&nbsp;Regards,&nbsp;  
&nbsp;Edgar

---

<div class="post-metadata">

**Author:** ![Dib](https://community.thinkgeo.com/user_avatar/community.thinkgeo.com/dib/32/19493_2.png) [@Dib](https://community.thinkgeo.com/u/Dib)\
**Post date:** [January 8, 2013, 9:30am UTC](https://community.thinkgeo.com/t/track-zoom-in-broken/3321/7 "2013-01-08T09:30:54Z")

</div>

&nbsp;Thanks&nbsp;guys,&nbsp;this&nbsp;was&nbsp;very&nbsp;helpful!

&nbsp;  
For&nbsp;us&nbsp;poor&nbsp;VB&nbsp;programmers&nbsp;out&nbsp;there,&nbsp;here&nbsp;is&nbsp;the&nbsp;code&nbsp;that&nbsp;I&nbsp;used&nbsp;to&nbsp;get&nbsp;this&nbsp;working,&nbsp;following&nbsp;what&nbsp;is&nbsp;above,&nbsp;and&nbsp;also&nbsp;in&nbsp;the&nbsp;Track&nbsp;Zoom&nbsp;In&nbsp;Without&nbsp;Shift&nbsp;example:  
&nbsp;  
First,&nbsp;I&nbsp;created&nbsp;the&nbsp;following&nbsp;class  
&nbsp;  
[code]&nbsp;#Region&nbsp;"&nbsp;Map&nbsp;Pan&nbsp;Mode&nbsp;Code&nbsp;"  
&nbsp;  
Public&nbsp;Enum&nbsp;MapMoveMode  
&nbsp;&nbsp;&nbsp;&nbsp;TrackZoomIn  
&nbsp;&nbsp;&nbsp;&nbsp;Pan  
&nbsp;&nbsp;&nbsp;&nbsp;'SelectJob  
&nbsp;&nbsp;&nbsp;&nbsp;'SelectAsset  
&nbsp;&nbsp;&nbsp;&nbsp;'AddAsset  
&nbsp;&nbsp;&nbsp;&nbsp;'EditAsset  
End&nbsp;Enum  
&nbsp;  
Namespace&nbsp;TrackZoomInWithoutShiftKey  
&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;Class&nbsp;ModeInteractiveOverlay  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inherits&nbsp;ExtentInteractiveOverlay  
&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Private&nbsp;\_mode&nbsp;As&nbsp;MapMoveMode  
&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Public&nbsp;Sub&nbsp;New()  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Sets&nbsp;default&nbsp;mode&nbsp;to&nbsp;TrackZoomIn.  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MyBase.PanMode&nbsp;=&nbsp;MapPanMode.Disabled  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MyBase.LeftClickDragMode&nbsp;=&nbsp;MapLeftClickDragMode.ZoomInWithKey  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MyBase.LeftClickDragKey&nbsp;=&nbsp;Keys.None  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\_mode&nbsp;=&nbsp;MapMoveMode.TrackZoomIn  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;Sub  
&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Public&nbsp;Property&nbsp;MapMode()&nbsp;As&nbsp;MapMoveMode  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return&nbsp;\_mode  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;Get  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set(value&nbsp;As&nbsp;MapMoveMode)  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\_mode&nbsp;=&nbsp;value  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select&nbsp;Case&nbsp;\_mode  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case&nbsp;MapMoveMode.TrackZoomIn  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;True&nbsp;Then  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UpdateMode(KernPanMode.Off,&nbsp;KernZoomMode.[On],&nbsp;KernTrackMode.Off,&nbsp;KernEditMode.Off,&nbsp;Cursors.Cross)  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit&nbsp;Select  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case&nbsp;MapMoveMode.Pan  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;True&nbsp;Then  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UpdateMode(KernPanMode.[On],&nbsp;KernZoomMode.Off,&nbsp;KernTrackMode.Off,&nbsp;KernEditMode.Off,&nbsp;Cursors.SizeAll)  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit&nbsp;Select  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Case&nbsp;MapMoveMode.SelectJob,&nbsp;MapMoveMode.SelectAsset  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;True&nbsp;Then  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UpdateMode(KernPanMode.Off,&nbsp;KernZoomMode.Off,&nbsp;KernTrackMode.Off,&nbsp;KernEditMode.Off,&nbsp;Cursors.Hand)  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit&nbsp;Select  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Case&nbsp;MapMoveMode.AddAsset  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;True&nbsp;Then  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UpdateMode(KernPanMode.Off,&nbsp;KernZoomMode.Off,&nbsp;KernTrackMode.[On],&nbsp;KernEditMode.Off,&nbsp;Cursors.Arrow)  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit&nbsp;Select  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Case&nbsp;MapMoveMode.EditAsset  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;True&nbsp;Then  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UpdateMode(KernPanMode.Off,&nbsp;KernZoomMode.Off,&nbsp;KernTrackMode.Off,&nbsp;KernEditMode.[On],&nbsp;Cursors.Arrow)  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit&nbsp;Select  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;Select  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;Set  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;Property  
&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Private&nbsp;Sub&nbsp;UpdateMode(panMode\_\_1&nbsp;As&nbsp;KernPanMode,&nbsp;zoomMode&nbsp;As&nbsp;KernZoomMode,&nbsp;trackMode\_\_2&nbsp;As&nbsp;KernTrackMode,&nbsp;editMode&nbsp;As&nbsp;KernEditMode,&nbsp;cursor&nbsp;As&nbsp;Windows.Forms.Cursor)  
&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PanMode&nbsp;=&nbsp;If(panMode\_\_1&nbsp;=&nbsp;KernPanMode.[On],&nbsp;MapPanMode.StandardPanning,&nbsp;MapPanMode.Disabled)  
&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LeftClickDragKey&nbsp;=&nbsp;If(zoomMode&nbsp;=&nbsp;KernZoomMode.[On],&nbsp;Keys.None,&nbsp;Keys.Shift)  
&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LeftClickDragMode&nbsp;=&nbsp;If(zoomMode&nbsp;=&nbsp;KernZoomMode.[On],&nbsp;MapLeftClickDragMode.[Default],&nbsp;MapLeftClickDragMode.Disabled)  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DoubleLeftClickMode&nbsp;=&nbsp;If(zoomMode&nbsp;=&nbsp;KernZoomMode.[On],&nbsp;MapDoubleLeftClickMode.[Default],&nbsp;MapDoubleLeftClickMode.Disabled)  
&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'If&nbsp;trackMode\_\_2&nbsp;=&nbsp;KernTrackMode.Off&nbsp;Then  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;\_gisMap.TrackOverlay.TrackMode&nbsp;=&nbsp;TrackMode.None  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'End&nbsp;If  
&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'If&nbsp;editMode&nbsp;=&nbsp;KernEditMode.Off&nbsp;Then  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;EndEdit()  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'End&nbsp;If  
&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'\_gisMap.Cursor&nbsp;=&nbsp;cursor  
&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;Sub  
&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Protected&nbsp;Overrides&nbsp;Function&nbsp;MouseDownCore(interactionArguments&nbsp;As&nbsp;InteractionArguments)&nbsp;As&nbsp;InteractiveResult  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;result&nbsp;As&nbsp;InteractiveResult&nbsp;=&nbsp;Nothing  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;=&nbsp;MyBase.MouseDownCore(interactionArguments)  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MyBase.PanAndTrackZoomState.IsLeftClickDragKeyPressed&nbsp;=&nbsp;True  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return&nbsp;result  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;Function  
&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;Class  
&nbsp;  
End&nbsp;Namespace  
&nbsp;  
Namespace&nbsp;Kern.Client.Windows.Controls.MapOverlays  
&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;Public&nbsp;Class&nbsp;ModeInteractiveOverlay  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inherits&nbsp;ExtentInteractiveOverlay  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Private&nbsp;\_mode&nbsp;As&nbsp;MapPanMode  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Private&nbsp;ReadOnly&nbsp;\_gisMap&nbsp;As&nbsp;DesktopEdition.WinformsMap  
&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Public&nbsp;Sub&nbsp;New(gisMap&nbsp;As&nbsp;WinformsMap)  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\_gisMap&nbsp;=&nbsp;gisMap  
&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LeftClickDragMode&nbsp;=&nbsp;MapLeftClickDragMode.[Default]  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DoubleLeftClickMode&nbsp;=&nbsp;MapDoubleLeftClickMode.[Default]  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;Sub  
&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Public&nbsp;Property&nbsp;MapMode()&nbsp;As&nbsp;MapMoveMode  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return&nbsp;\_mode  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;Get  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set(value&nbsp;As&nbsp;MapMoveMode)  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\_mode&nbsp;=&nbsp;value  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select&nbsp;Case&nbsp;\_mode  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case&nbsp;MapMoveMode.TrackZoomIn  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;True&nbsp;Then  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UpdateMode(KernPanMode.Off,&nbsp;KernZoomMode.[On],&nbsp;KernTrackMode.Off,&nbsp;KernEditMode.Off,&nbsp;Cursors.Cross)  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit&nbsp;Select  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case&nbsp;MapMoveMode.Pan  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;True&nbsp;Then  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UpdateMode(KernPanMode.[On],&nbsp;KernZoomMode.Off,&nbsp;KernTrackMode.Off,&nbsp;KernEditMode.Off,&nbsp;Cursors.SizeAll)  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit&nbsp;Select  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Case&nbsp;MapMoveMode.SelectJob,&nbsp;MapMoveMode.SelectAsset  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;True&nbsp;Then  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UpdateMode(KernPanMode.Off,&nbsp;KernZoomMode.Off,&nbsp;KernTrackMode.Off,&nbsp;KernEditMode.Off,&nbsp;Cursors.Hand)  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit&nbsp;Select  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Case&nbsp;MapMoveMode.AddAsset  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;True&nbsp;Then  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UpdateMode(KernPanMode.Off,&nbsp;KernZoomMode.Off,&nbsp;KernTrackMode.[On],&nbsp;KernEditMode.Off,&nbsp;Cursors.Default)  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit&nbsp;Select  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Case&nbsp;MapMoveMode.EditAsset  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;True&nbsp;Then  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UpdateMode(KernPanMode.Off,&nbsp;KernZoomMode.Off,&nbsp;KernTrackMode.Off,&nbsp;KernEditMode.[On],&nbsp;Cursors.Default)  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit&nbsp;Select  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If  
&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;Select  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;Set  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;Property  
&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Private&nbsp;Sub&nbsp;UpdateMode(panMode\_\_1&nbsp;As&nbsp;KernPanMode,&nbsp;zoomMode&nbsp;As&nbsp;KernZoomMode,&nbsp;trackMode\_\_2&nbsp;As&nbsp;KernTrackMode,&nbsp;editMode&nbsp;As&nbsp;KernEditMode,&nbsp;cursor&nbsp;As&nbsp;System.Windows.Forms.Cursor)  
&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PanMode&nbsp;=&nbsp;If(panMode\_\_1&nbsp;=&nbsp;KernPanMode.[On],&nbsp;MapPanMode.StandardPanning,&nbsp;MapPanMode.Disabled)  
&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LeftClickDragKey&nbsp;=&nbsp;If(zoomMode&nbsp;=&nbsp;KernZoomMode.[On],&nbsp;Keys.None,&nbsp;Keys.Shift)  
&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LeftClickDragMode&nbsp;=&nbsp;If(zoomMode&nbsp;=&nbsp;KernZoomMode.[On],&nbsp;MapLeftClickDragMode.[Default],&nbsp;MapLeftClickDragMode.Disabled)  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DoubleLeftClickMode&nbsp;=&nbsp;If(zoomMode&nbsp;=&nbsp;KernZoomMode.[On],&nbsp;MapDoubleLeftClickMode.[Default],&nbsp;MapDoubleLeftClickMode.Disabled)  
&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;trackMode\_\_2&nbsp;=&nbsp;KernTrackMode.Off&nbsp;Then  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\_gisMap.TrackOverlay.TrackMode&nbsp;=&nbsp;TrackMode.None  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If  
&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;editMode&nbsp;=&nbsp;KernEditMode.Off&nbsp;Then  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EndEdit()  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If  
&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\_gisMap.Cursor&nbsp;=&nbsp;cursor  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;Sub  
&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Private&nbsp;Sub&nbsp;EndEdit()  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;\_gisMap.EditOverlay.EditShapesLayer.InternalFeatures.Count&nbsp;\>&nbsp;0&nbsp;Then  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim&nbsp;feature&nbsp;As&nbsp;Feature&nbsp;=&nbsp;\_gisMap.EditOverlay.EditShapesLayer.InternalFeatures(0)  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\_gisMap.EditOverlay.EditShapesLayer.InternalFeatures.Clear()  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\_gisMap.EditOverlay.CalculateAllControlPoints()  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\_gisMap.EditOverlay.EditShapesLayer.InternalFeatures.Add(feature)  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\_gisMap.Refresh(New&nbsp;Overlay()&nbsp;{\_gisMap.EditOverlay})  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;If  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;Sub  
&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;Class  
&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;Enum&nbsp;KernPanMode  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Off  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[On]  
&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;Enum  
&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;Enum&nbsp;KernZoomMode  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Off  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[On]  
&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;Enum  
&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;Enum&nbsp;KernTrackMode  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Off  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[On]  
&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;Enum  
&nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;Enum&nbsp;KernEditMode  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Off  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[On]  
&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;Enum  
&nbsp;  
End&nbsp;Namespace  
&nbsp;  
#End&nbsp;Region  
&nbsp;  
&nbsp;  
Then,&nbsp;in&nbsp;the&nbsp;form&nbsp;with&nbsp;the&nbsp;map,&nbsp;a&nbsp;private&nbsp;instance&nbsp;of&nbsp;it  
&nbsp;  
[code]  
Private&nbsp;\_modeInterOver&nbsp;As&nbsp;TrackZoomInWithoutShiftKey.ModeInteractiveOverlay  
&nbsp;  
&nbsp;  
&nbsp;Linking&nbsp;the&nbsp;object&nbsp;to&nbsp;the&nbsp;map&nbsp;instance:  
&nbsp;  
[code]  
Me.\_modeInterOver&nbsp;=&nbsp;New&nbsp;TrackZoomInWithoutShiftKey.ModeInteractiveOverlay  
Me.\_modeInterOver.MapMode&nbsp;=&nbsp;MapMoveMode.Pan  
Me.StormMap.ExtentOverlay&nbsp;=&nbsp;Me.\_modeInterOver  
&nbsp;  
&nbsp;  
Finally,&nbsp;changing&nbsp;the&nbsp;modes&nbsp;based&nbsp;on&nbsp;what&nbsp;the&nbsp;user&nbsp;wants:  
&nbsp;  
[code]  
Me.\_modeInterOver.MapMode&nbsp;=&nbsp;MapMoveMode.Pan  
Me.\_modeInterOver.MapMode&nbsp;=&nbsp;MapMoveMode.TrackZoomIn  
&nbsp;  
&nbsp;  
Hope&nbsp;this&nbsp;helps

---

<div class="post-metadata">

**Author:** ![Dib](https://community.thinkgeo.com/user_avatar/community.thinkgeo.com/dib/32/19493_2.png) [@Dib](https://community.thinkgeo.com/u/Dib)\
**Post date:** [January 8, 2013, 9:31am UTC](https://community.thinkgeo.com/t/track-zoom-in-broken/3321/8 "2013-01-08T09:31:57Z")

</div>

Well&nbsp;that&nbsp;didn’t&nbsp;end&nbsp;up&nbsp;looking&nbsp;like&nbsp;I&nbsp;thought&nbsp;it&nbsp;would…

---

<div class="post-metadata">

**Author:** ![Edgar](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/e/b487fb/32.png) [@Edgar](https://community.thinkgeo.com/u/Edgar)\
**Post date:** [January 8, 2013, 7:33pm UTC](https://community.thinkgeo.com/t/track-zoom-in-broken/3321/9 "2013-01-08T19:33:58Z")

</div>

Hi&nbsp;Dib,&nbsp;  
&nbsp;&nbsp;  
&nbsp;Thanks&nbsp;for&nbsp;sharing&nbsp;this!&nbsp;  
&nbsp;&nbsp;  
&nbsp;Regards,&nbsp;  
&nbsp;Edgar
