# Exception in RotationProjection trying to find point clicked by user

**URL:** <https://community.thinkgeo.com/t/exception-in-rotationprojection-trying-to-find-point-clicked-by-user/2492>\
**Category:** WinForms\
**Created:** [December 16, 2014, 2:52pm UTC](https://community.thinkgeo.com/t/exception-in-rotationprojection-trying-to-find-point-clicked-by-user/2492 "2014-12-16T14:52:46Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![Russ](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/r/e36b37/32.png) [@Russ](https://community.thinkgeo.com/u/Russ)\
**Post date:** [December 16, 2014, 2:52pm UTC](https://community.thinkgeo.com/t/exception-in-rotationprojection-trying-to-find-point-clicked-by-user/2492/1 "2014-12-16T14:52:46Z")

</div>

I’m&nbsp;setting&nbsp;up&nbsp;my&nbsp;layers&nbsp;using&nbsp;an&nbsp;instance&nbsp;of&nbsp;your&nbsp;RotationProjection&nbsp;class,&nbsp;to&nbsp;allow&nbsp;rotating&nbsp;our&nbsp;map&nbsp;(assuming&nbsp;your&nbsp;map&nbsp;ever&nbsp;supports&nbsp;also&nbsp;rotating&nbsp;the&nbsp;satellite&nbsp;image&nbsp;in&nbsp;sync).&nbsp;&nbsp;The&nbsp;setup&nbsp;is&nbsp;quite&nbsp;simple&nbsp;as&nbsp;seen&nbsp;below.

> `InMemoryFeatureLayer layer = new InMemoryFeatureLayer( );`  
> `layer.FeatureSource.Projection = rotateProjection;`

  
  
  
  
  
While&nbsp;trying&nbsp;to&nbsp;use&nbsp;your&nbsp;sample&nbsp;code&nbsp;to&nbsp;provide&nbsp;functions&nbsp;that&nbsp;would&nbsp;allow&nbsp;our&nbsp;users&nbsp;to&nbsp;click&nbsp;on&nbsp;and&nbsp;select&nbsp;dynamic&nbsp;point&nbsp;objects&nbsp;added&nbsp;to  

instances&nbsp;of&nbsp;InMemoryFeatureLayer,&nbsp;I&nbsp;added&nbsp;the&nbsp;following&nbsp;code&nbsp;based&nbsp;on&nbsp;your&nbsp;sample&nbsp;"GetFeatureClickedOnWithProjection".&nbsp;&nbsp;

> `Collection<``Feature``> features = featureLayer.QueryTools.GetFeaturesWithinDistanceOf( new PointShape( e.WorldX, e.WorldY ), DesktopMap.MapUnit, DistanceUnit.Feet, distanceBuffer, ReturningColumnsType.NoColumns );`

  
  
  
However,&nbsp;when&nbsp;this&nbsp;line&nbsp;executes,&nbsp;we&nbsp;get&nbsp;the&nbsp;following&nbsp;exception&nbsp;regarding&nbsp;your&nbsp;projection&nbsp;object’s&nbsp;InternalGeographyUnit.&nbsp;&nbsp;  
  

> `System.InvalidOperationException was unhandled`  
> `  ``_HResult=-2146233079`  
> `  ``_message=Cannot get the projection’s InternalGeographyUnit, please provide it by overriding the Projection’s GetInternalGeographyUnitCore() method.`  
> `  ``HResult=-2146233079`  
> `  ``IsTransient=false`  
> `  ``Message=Cannot get the projection’s InternalGeographyUnit, please provide it by overriding the Projection’s GetInternalGeographyUnitCore() method.`  
> `  ``Source=MapSuiteCore`  
> `  ``StackTrace:`  
> `       ``at ThinkGeo.MapSuite.Core.FeatureSource.GetFeaturesWithinDistanceOf(BaseShape targetShape, GeographyUnit unitOfData, DistanceUnit distanceUnit, Double distance, IEnumerable`1 returningColumnNames)`  
> `       ``at ThinkGeo.MapSuite.Core.FeatureSource.GetFeaturesWithinDistanceOf(BaseShape targetShape, GeographyUnit unitOfData, DistanceUnit distanceUnit, Double distance, ReturningColumnsType returningColumnNamesType)`  
> `       ``at ThinkGeo.MapSuite.Core.QueryTools.GetFeaturesWithinDistanceOf(BaseShape targetShape, GeographyUnit unitOfData, DistanceUnit distanceUnit, Double distance, ReturningColumnsType returningColumnNamesType)`  
> `       ``at Toro.Client.Shared.Map.LynxMap.DesktopMapOnMapClick(Object sender, MapClickWinformsMapEventArgs e) in d:\Toro\Map\Prototypes\LynxMapPrototype\LynxMap\LynxMap.cs:line 77`  
> `       ``at System.EventHandler`1.Invoke(Object sender, TEventArgs e)`  
> `       ``at ThinkGeo.MapSuite.DesktopEdition.WinformsMap.OnMapClick(MapClickWinformsMapEventArgs e)`  
> `       ``at ThinkGeo.MapSuite.DesktopEdition.WinformsMap.5xM=(InteractionArguments iBc=)`  
> `       ``at ThinkGeo.MapSuite.DesktopEdition.WinformsMap.0hM=(Object dhc=, 0xU= dxc=)`  
> `       ``at ThinkGeo.MapSuite.DesktopEdition.MouseEventAnalyzer.OnMouseEvent(0xU= e)`  
> `       ``at ThinkGeo.MapSuite.DesktopEdition.MouseEventAnalyzer.yBQ=(Object yRQ=, EventArgs yhQ=)`  
> `       ``at System.Windows.Forms.Timer.OnTick(EventArgs e)`  
> `       ``at System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)`  
> `       ``at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)`  
> `       ``at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)`  
> `       ``at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)`  
> `       ``at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)`  
> `       ``at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)`  
> `       ``at System.Windows.Forms.Application.Run(Form mainForm)`  
> `       ``at ShapesDisplay.Program.Main() in d:\Toro\Map\Prototypes\LynxMapPrototype\DriverForm\Program.cs:line 16`  
> `       ``at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)`  
> `       ``at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)`  
> `       ``at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()`  
> `       ``at System.Threading.ThreadHelper.ThreadStart_Context(Object state)`  
> `       ``at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)`  
> `       ``at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)`  
> `       ``at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)`  
> `       ``at System.Threading.ThreadHelper.ThreadStart()`  
> `  ``InnerException: `

  
  
  
My&nbsp;requirement&nbsp;is&nbsp;simply&nbsp;to&nbsp;loop&nbsp;through&nbsp;a&nbsp;collection&nbsp;of&nbsp;simple&nbsp;layers&nbsp;(from&nbsp;top&nbsp;to&nbsp;bottom)&nbsp;that&nbsp;contain&nbsp;nothing&nbsp;but&nbsp;a&nbsp;number&nbsp;of&nbsp;points&nbsp;within&nbsp;the&nbsp;layers,&nbsp;looking&nbsp;to&nbsp;try&nbsp;to&nbsp;find&nbsp;the&nbsp;first&nbsp;layer&nbsp;(and&nbsp;associated&nbsp;feature)&nbsp;that&nbsp;is&nbsp;within&nbsp;the&nbsp;buffer&nbsp;range&nbsp;of&nbsp;the&nbsp;click&nbsp;point.&nbsp;&nbsp;It&nbsp;does&nbsp;not&nbsp;care&nbsp;about&nbsp;"columns&nbsp;to&nbsp;return"&nbsp;or&nbsp;anything&nbsp;of&nbsp;the&nbsp;like,&nbsp;I&nbsp;just&nbsp;need&nbsp;the&nbsp;point&nbsp;feature&nbsp;they&nbsp;tried&nbsp;to&nbsp;click,&nbsp;and&nbsp;it&nbsp;has&nbsp;to&nbsp;work&nbsp;with&nbsp;a&nbsp;rotation&nbsp;projection.&nbsp;&nbsp;  
  
  
  
Can&nbsp;you&nbsp;please&nbsp;provide&nbsp;a&nbsp;sample&nbsp;of&nbsp;how&nbsp;can&nbsp;this&nbsp;be&nbsp;done?

---

<div class="post-metadata">

**Author:** ![Russ](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/r/e36b37/32.png) [@Russ](https://community.thinkgeo.com/u/Russ)\
**Post date:** [December 16, 2014, 3:15pm UTC](https://community.thinkgeo.com/t/exception-in-rotationprojection-trying-to-find-point-clicked-by-user/2492/2 "2014-12-16T15:15:16Z")

</div>

I&nbsp;just&nbsp;realized&nbsp;that&nbsp;the&nbsp;rotation&nbsp;projection&nbsp;appears&nbsp;to&nbsp;not&nbsp;be&nbsp;working&nbsp;with&nbsp;the&nbsp;InMemoryFeatureLayer.&nbsp;&nbsp;My&nbsp;shape&nbsp;file&nbsp;layers&nbsp;rotate&nbsp;as&nbsp;desired,&nbsp;but&nbsp;the&nbsp;overlay&nbsp;above&nbsp;it&nbsp;with&nbsp;InMemoryFeatureLayer(s)&nbsp;does&nbsp;not&nbsp;rotate&nbsp;with&nbsp;it.

---

<div class="post-metadata">

**Author:** ![Ethan](https://community.thinkgeo.com/user_avatar/community.thinkgeo.com/ethan/32/19964_2.png) [@Ethan](https://community.thinkgeo.com/u/Ethan)\
**Post date:** [December 17, 2014, 4:27am UTC](https://community.thinkgeo.com/t/exception-in-rotationprojection-trying-to-find-point-clicked-by-user/2492/3 "2014-12-17T04:27:07Z")

</div>

Hi&nbsp;Russ,&nbsp;  
&nbsp;&nbsp;  
&nbsp;Actually,&nbsp;InMemoryFeatureLayer&nbsp;also&nbsp;can&nbsp;work&nbsp;with&nbsp;projection&nbsp;such&nbsp;as&nbsp;RotationProjection.&nbsp;As&nbsp;the&nbsp;issue&nbsp;you&nbsp;occurred,&nbsp;I’m&nbsp;wondering&nbsp;how&nbsp;you&nbsp;add&nbsp;features&nbsp;to&nbsp;InmemoryFeatureLayer,&nbsp;and&nbsp;below&nbsp;code&nbsp;is&nbsp;our&nbsp;suggest&nbsp;way:&nbsp;  
&nbsp;`           InMemoryFeatureLayer inLayer = new InMemoryFeatureLayer();            inLayer.FeatureSource.Projection = new RotationProjection(90);            inLayer.Open();            inLayer.FeatureSource.BeginTransaction();            inLayer.FeatureSource.AddFeature(new Feature(0, 2));            inLayer.FeatureSource.CommitTransaction(); `&nbsp;  
&nbsp;Would&nbsp;you&nbsp;please&nbsp;have&nbsp;a&nbsp;try?&nbsp;And&nbsp;if&nbsp;the&nbsp;RotationProjection&nbsp;still&nbsp;not&nbsp;work,&nbsp;please&nbsp;provide&nbsp;us&nbsp;some&nbsp;related&nbsp;code&nbsp;snippet.&nbsp;  
&nbsp;&nbsp;  
&nbsp;&nbsp;  
&nbsp;Thanks,&nbsp;  
&nbsp;&nbsp;  
&nbsp;Kevin

---

<div class="post-metadata">

**Author:** ![Russ](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/r/e36b37/32.png) [@Russ](https://community.thinkgeo.com/u/Russ)\
**Post date:** [December 17, 2014, 2:31pm UTC](https://community.thinkgeo.com/t/exception-in-rotationprojection-trying-to-find-point-clicked-by-user/2492/4 "2014-12-17T14:31:23Z")

</div>

I&nbsp;was&nbsp;adding&nbsp;the&nbsp;objects&nbsp;to&nbsp;layer.InternalFeatures,&nbsp;something&nbsp;I&nbsp;got&nbsp;from&nbsp;one&nbsp;of&nbsp;the&nbsp;samples.&nbsp;  
&nbsp;&nbsp;  
&nbsp;I’ve&nbsp;changed&nbsp;to&nbsp;use&nbsp;the&nbsp;Open/Begin/Add/Commit/Close.&nbsp;&nbsp;I&nbsp;no&nbsp;longer&nbsp;get&nbsp;an&nbsp;exception&nbsp;when&nbsp;I&nbsp;have&nbsp;the&nbsp;RotationProjection&nbsp;set&nbsp;on&nbsp;the&nbsp;layer,&nbsp;but&nbsp;sync&nbsp;rotation&nbsp;(or&nbsp;any&nbsp;rotation&nbsp;at&nbsp;all)&nbsp;with&nbsp;the&nbsp;shape&nbsp;layers&nbsp;in&nbsp;the&nbsp;shape&nbsp;overlay&nbsp;is&nbsp;still&nbsp;not&nbsp;working.&nbsp;&nbsp;The&nbsp;shape&nbsp;layers&nbsp;in&nbsp;the&nbsp;static&nbsp;map&nbsp;overlay&nbsp;rotate,&nbsp;the&nbsp;InMemoryLayers&nbsp;using&nbsp;the&nbsp;same&nbsp;RotationProjection&nbsp;in&nbsp;the&nbsp;domain&nbsp;specific&nbsp;overlay&nbsp;do&nbsp;not&nbsp;rotate.&nbsp;&nbsp;Likewise&nbsp;the&nbsp;state&nbsp;objects&nbsp;in&nbsp;the&nbsp;InMemoryLayers&nbsp;of&nbsp;the&nbsp;Dynamic&nbsp;overlay&nbsp;(using&nbsp;the&nbsp;same&nbsp;projection&nbsp;instance)&nbsp;do&nbsp;not&nbsp;rotate&nbsp;either.&nbsp;&nbsp;Only&nbsp;the&nbsp;shape&nbsp;layers&nbsp;are&nbsp;rotating.&nbsp;  
&nbsp;&nbsp;  
&nbsp;Rotation&nbsp;is&nbsp;not&nbsp;a&nbsp;hard&nbsp;requirement,&nbsp;just&nbsp;very&nbsp;desirable,&nbsp;so&nbsp;I’ll&nbsp;revisit&nbsp;and&nbsp;explore&nbsp;this&nbsp;option&nbsp;further&nbsp;in&nbsp;the&nbsp;future.

---

<div class="post-metadata">

**Author:** ![Russ](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/r/e36b37/32.png) [@Russ](https://community.thinkgeo.com/u/Russ)\
**Post date:** [December 17, 2014, 2:58pm UTC](https://community.thinkgeo.com/t/exception-in-rotationprojection-trying-to-find-point-clicked-by-user/2492/5 "2014-12-17T14:58:07Z")

</div>

Oops,&nbsp;replied&nbsp;too&nbsp;soon.&nbsp;&nbsp;I&nbsp;forgot&nbsp;that&nbsp;I&nbsp;needed&nbsp;to&nbsp;perform&nbsp;operations&nbsp;to&nbsp;invoke&nbsp;the&nbsp;featureLayer.QueryTools.GetFeaturesWithinDistanceOf&nbsp;code.&nbsp;&nbsp;When&nbsp;I&nbsp;did&nbsp;so,&nbsp;after&nbsp;changing&nbsp;my&nbsp;loading&nbsp;code&nbsp;to&nbsp;use&nbsp;the&nbsp;FeatureSource&nbsp;rather&nbsp;than&nbsp;InternalFeatures,&nbsp;when&nbsp;I&nbsp;set&nbsp;a&nbsp;projection&nbsp;on&nbsp;the&nbsp;layer,&nbsp;I&nbsp;get&nbsp;the&nbsp;following&nbsp;exception.&nbsp;&nbsp;I’ve&nbsp;reverted&nbsp;back&nbsp;to&nbsp;not&nbsp;using&nbsp;a&nbsp;projection&nbsp;until&nbsp;I&nbsp;find&nbsp;out&nbsp;how&nbsp;to&nbsp;address&nbsp;this&nbsp;issue.&nbsp;&nbsp;But&nbsp;this&nbsp;will&nbsp;work&nbsp;for&nbsp;my&nbsp;demo&nbsp;later&nbsp;today.&nbsp;  
  
  
  
  
  
System.InvalidOperationException&nbsp;was&nbsp;unhandled&nbsp;  
  
\_HResult=-2146233079&nbsp;  
  
\_message=Cannot&nbsp;get&nbsp;the&nbsp;projection’s&nbsp;InternalGeographyUnit,&nbsp;please&nbsp;provide&nbsp;it&nbsp;by&nbsp;overriding&nbsp;the&nbsp;Projection’s&nbsp;GetInternalGeographyUnitCore()&nbsp;method.&nbsp;  
  
HResult=-2146233079&nbsp;  
  
IsTransient=false&nbsp;  
  
Message=Cannot&nbsp;get&nbsp;the&nbsp;projection’s&nbsp;InternalGeographyUnit,&nbsp;please&nbsp;provide&nbsp;it&nbsp;by&nbsp;overriding&nbsp;the&nbsp;Projection’s&nbsp;GetInternalGeographyUnitCore()&nbsp;method.&nbsp;  
  
Source=MapSuiteCore&nbsp;  
  
StackTrace:&nbsp;  
  
at&nbsp;ThinkGeo.MapSuite.Core.FeatureSource.GetFeaturesWithinDistanceOf(BaseShape&nbsp;targetShape,&nbsp;GeographyUnit&nbsp;unitOfData,&nbsp;DistanceUnit&nbsp;distanceUnit,&nbsp;Double&nbsp;distance,&nbsp;IEnumerable`1&nbsp;returningColumnNames)&nbsp;  
  
at&nbsp;ThinkGeo.MapSuite.Core.FeatureSource.GetFeaturesWithinDistanceOf(BaseShape&nbsp;targetShape,&nbsp;GeographyUnit&nbsp;unitOfData,&nbsp;DistanceUnit&nbsp;distanceUnit,&nbsp;Double&nbsp;distance,&nbsp;ReturningColumnsType&nbsp;returningColumnNamesType)&nbsp;  
  
at&nbsp;ThinkGeo.MapSuite.Core.QueryTools.GetFeaturesWithinDistanceOf(BaseShape&nbsp;targetShape,&nbsp;GeographyUnit&nbsp;unitOfData,&nbsp;DistanceUnit&nbsp;distanceUnit,&nbsp;Double&nbsp;distance,&nbsp;ReturningColumnsType&nbsp;returningColumnNamesType)&nbsp;  
  
at&nbsp;Toro.Client.Shared.Map.LynxMap.GetFeature(FeatureLayer&nbsp;featureLayer,&nbsp;Double&nbsp;worldX,&nbsp;Double&nbsp;worldY,&nbsp;Double&nbsp;distanceBuffer)&nbsp;in&nbsp;d:\Toro\Map\Prototypes\LynxMapPrototype\LynxMap\LynxMap.cs:line&nbsp;156&nbsp;  
  
at&nbsp;Toro.Client.Shared.Map.LynxMap.DesktopMapOnMapClick(Object&nbsp;sender,&nbsp;MapClickWinformsMapEventArgs&nbsp;e)&nbsp;in&nbsp;d:\Toro\Map\Prototypes\LynxMapPrototype\LynxMap\LynxMap.cs:line&nbsp;121&nbsp;  
  
at&nbsp;System.EventHandler`1.Invoke(Object&nbsp;sender,&nbsp;TEventArgs&nbsp;e)&nbsp;  
  
at&nbsp;ThinkGeo.MapSuite.DesktopEdition.WinformsMap.OnMapClick(MapClickWinformsMapEventArgs&nbsp;e)&nbsp;  
  
at&nbsp;ThinkGeo.MapSuite.DesktopEdition.WinformsMap.5xM=(InteractionArguments&nbsp;iBc=)&nbsp;  
  
at&nbsp;ThinkGeo.MapSuite.DesktopEdition.WinformsMap.0hM=(Object&nbsp;dhc=,&nbsp;0xU=&nbsp;dxc=)&nbsp;  
  
at&nbsp;ThinkGeo.MapSuite.DesktopEdition.MouseEventAnalyzer.OnMouseEvent(0xU=&nbsp;e)&nbsp;  
  
at&nbsp;ThinkGeo.MapSuite.DesktopEdition.MouseEventAnalyzer.yBQ=(Object&nbsp;yRQ=,&nbsp;EventArgs&nbsp;yhQ=)&nbsp;  
  
at&nbsp;System.Windows.Forms.Timer.OnTick(EventArgs&nbsp;e)&nbsp;  
  
at&nbsp;System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message&&nbsp;m)&nbsp;  
  
at&nbsp;System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr&nbsp;hWnd,&nbsp;Int32&nbsp;msg,&nbsp;IntPtr&nbsp;wparam,&nbsp;IntPtr&nbsp;lparam)&nbsp;  
  
at&nbsp;System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG&&nbsp;msg)&nbsp;  
  
at&nbsp;System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr&nbsp;dwComponentID,&nbsp;Int32&nbsp;reason,&nbsp;Int32&nbsp;pvLoopData)&nbsp;  
  
at&nbsp;System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32&nbsp;reason,&nbsp;ApplicationContext&nbsp;context)&nbsp;  
  
at&nbsp;System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32&nbsp;reason,&nbsp;ApplicationContext&nbsp;context)&nbsp;  
  
at&nbsp;System.Windows.Forms.Application.Run(Form&nbsp;mainForm)&nbsp;  
  
at&nbsp;ShapesDisplay.Program.Main()&nbsp;in&nbsp;d:\Toro\Map\Prototypes\LynxMapPrototype\DriverForm\Program.cs:line&nbsp;16&nbsp;  
  
at&nbsp;System.AppDomain.\_nExecuteAssembly(RuntimeAssembly&nbsp;assembly,&nbsp;String[]&nbsp;args)&nbsp;  
  
at&nbsp;System.AppDomain.ExecuteAssembly(String&nbsp;assemblyFile,&nbsp;Evidence&nbsp;assemblySecurity,&nbsp;String[]&nbsp;args)&nbsp;  
  
at&nbsp;Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()&nbsp;  
  
at&nbsp;System.Threading.ThreadHelper.ThreadStart\_Context(Object&nbsp;state)&nbsp;  
  
at&nbsp;System.Threading.ExecutionContext.RunInternal(ExecutionContext&nbsp;executionContext,&nbsp;ContextCallback&nbsp;callback,&nbsp;Object&nbsp;state,&nbsp;Boolean&nbsp;preserveSyncCtx)&nbsp;  
  
at&nbsp;System.Threading.ExecutionContext.Run(ExecutionContext&nbsp;executionContext,&nbsp;ContextCallback&nbsp;callback,&nbsp;Object&nbsp;state,&nbsp;Boolean&nbsp;preserveSyncCtx)&nbsp;  
  
at&nbsp;System.Threading.ExecutionContext.Run(ExecutionContext&nbsp;executionContext,&nbsp;ContextCallback&nbsp;callback,&nbsp;Object&nbsp;state)&nbsp;  
  
at&nbsp;System.Threading.ThreadHelper.ThreadStart()&nbsp;  
  
InnerException:&nbsp;&nbsp;

---

<div class="post-metadata">

**Author:** ![Troy](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/t/85f322/32.png) [@Troy](https://community.thinkgeo.com/u/Troy)\
**Post date:** [December 18, 2014, 3:36am UTC](https://community.thinkgeo.com/t/exception-in-rotationprojection-trying-to-find-point-clicked-by-user/2492/6 "2014-12-18T03:36:01Z")

</div>

Hi&nbsp;Russ,&nbsp;  
&nbsp;&nbsp;  
&nbsp;Looks&nbsp;like&nbsp;we&nbsp;are&nbsp;missing&nbsp;the&nbsp;SourceUnit&nbsp;property&nbsp;of&nbsp;RotationProjection,&nbsp;try&nbsp;to&nbsp;specify&nbsp;an&nbsp;unit&nbsp;like&nbsp;meter&nbsp;should&nbsp;avoid&nbsp;this&nbsp;exception,&nbsp;it&nbsp;should&nbsp;be&nbsp;the&nbsp;same&nbsp;as&nbsp;your&nbsp;featuresource&nbsp;coordinate&nbsp;unit.&nbsp;Comparing&nbsp;with&nbsp;other&nbsp;projection&nbsp;type&nbsp;like&nbsp;ManageredProjection,&nbsp;they&nbsp;can&nbsp;get&nbsp;its&nbsp;unit&nbsp;from&nbsp;itself,&nbsp;but&nbsp;for&nbsp;RotationProjection,&nbsp;we&nbsp;need&nbsp;to&nbsp;specify&nbsp;it&nbsp;in&nbsp;some&nbsp;query&nbsp;operations.&nbsp;  
&nbsp;&nbsp;  
&nbsp;Hope&nbsp;it&nbsp;helps.&nbsp;  
&nbsp;Troy

---

<div class="post-metadata">

**Author:** ![Russ](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/r/e36b37/32.png) [@Russ](https://community.thinkgeo.com/u/Russ)\
**Post date:** [December 18, 2014, 11:24am UTC](https://community.thinkgeo.com/t/exception-in-rotationprojection-trying-to-find-point-clicked-by-user/2492/7 "2014-12-18T11:24:39Z")

</div>

It’s&nbsp;the&nbsp;same&nbsp;RotationProjection&nbsp;instance&nbsp;that&nbsp;is&nbsp;working&nbsp;for&nbsp;the&nbsp;shape&nbsp;layers.&nbsp;&nbsp;But&nbsp;I&nbsp;just&nbsp;hard&nbsp;coded&nbsp;it&nbsp;to&nbsp;“Feet”&nbsp;for&nbsp;a&nbsp;test,&nbsp;which&nbsp;happens&nbsp;to&nbsp;be&nbsp;the&nbsp;units&nbsp;used&nbsp;in&nbsp;my&nbsp;test&nbsp;data.&nbsp;&nbsp;This&nbsp;did&nbsp;stop&nbsp;the&nbsp;exception,&nbsp;but&nbsp;my&nbsp;InMemoryFeatureLayer&nbsp;data&nbsp;points&nbsp;still&nbsp;do&nbsp;not&nbsp;rotate&nbsp;along&nbsp;with&nbsp;the&nbsp;shape&nbsp;file&nbsp;layers&nbsp;(in&nbsp;a&nbsp;different&nbsp;overlay,&nbsp;if&nbsp;that&nbsp;matters).&nbsp;&nbsp;&nbsp;  
&nbsp;&nbsp;  
&nbsp;Since&nbsp;the&nbsp;same&nbsp;rotation&nbsp;projection&nbsp;had&nbsp;been&nbsp;working&nbsp;for&nbsp;quite&nbsp;some&nbsp;time&nbsp;with&nbsp;the&nbsp;shape&nbsp;file&nbsp;layers,&nbsp;I&nbsp;did&nbsp;not&nbsp;expect&nbsp;something&nbsp;like&nbsp;this&nbsp;(configuration&nbsp;of&nbsp;the&nbsp;rotation&nbsp;projection&nbsp;itself)&nbsp;to&nbsp;be&nbsp;at&nbsp;the&nbsp;heart&nbsp;of&nbsp;the&nbsp;problem.&nbsp;&nbsp;Also,&nbsp;the&nbsp;exception&nbsp;message&nbsp;itself&nbsp;suggest&nbsp;a&nbsp;need&nbsp;for&nbsp;overriding&nbsp;methods&nbsp;of&nbsp;the&nbsp;projection&nbsp;as&nbsp;though&nbsp;I&nbsp;were&nbsp;providing&nbsp;a&nbsp;custom&nbsp;derived&nbsp;class,&nbsp;which&nbsp;I&nbsp;was&nbsp;not.&nbsp;&nbsp;So&nbsp;between&nbsp;the&nbsp;two,&nbsp;my&nbsp;expectation&nbsp;was&nbsp;that&nbsp;it&nbsp;was&nbsp;an&nbsp;internal&nbsp;problem&nbsp;of&nbsp;some&nbsp;sort.&nbsp;  
&nbsp;&nbsp;  
&nbsp;As&nbsp;I&nbsp;said&nbsp;earlier,&nbsp;this&nbsp;is&nbsp;not&nbsp;a&nbsp;huge&nbsp;issue&nbsp;since&nbsp;we&nbsp;will&nbsp;not&nbsp;be&nbsp;able&nbsp;to&nbsp;make&nbsp;the&nbsp;rotation&nbsp;feature&nbsp;available&nbsp;to&nbsp;our&nbsp;customers&nbsp;until/unless&nbsp;your&nbsp;component&nbsp;supports&nbsp;also&nbsp;rotating&nbsp;the&nbsp;satellite&nbsp;background&nbsp;image&nbsp;in&nbsp;sync&nbsp;with&nbsp;all&nbsp;the&nbsp;overlay&nbsp;data.&nbsp;&nbsp;But&nbsp;for&nbsp;that&nbsp;hopeful&nbsp;eventuality,&nbsp;and&nbsp;for&nbsp;my&nbsp;evolving&nbsp;understanding,&nbsp;I&nbsp;want&nbsp;to&nbsp;be&nbsp;able&nbsp;to&nbsp;make&nbsp;this&nbsp;work&nbsp;as&nbsp;it&nbsp;seems&nbsp;it&nbsp;should.&nbsp;&nbsp;Perhaps&nbsp;you&nbsp;could&nbsp;provide&nbsp;a&nbsp;simple&nbsp;functional&nbsp;sample&nbsp;where&nbsp;a&nbsp;shape&nbsp;file&nbsp;layer&nbsp;in&nbsp;one&nbsp;overlay,&nbsp;and&nbsp;an&nbsp;InMemoryFeatureLayer&nbsp;in&nbsp;another&nbsp;overlay&nbsp;get&nbsp;rotated&nbsp;in&nbsp;sync?&nbsp;&nbsp;If&nbsp;so,&nbsp;then&nbsp;perhaps&nbsp;that&nbsp;will&nbsp;provide&nbsp;for&nbsp;me&nbsp;the&nbsp;information&nbsp;to&nbsp;determine&nbsp;what&nbsp;I&nbsp;am&nbsp;doing&nbsp;wrong.

---

<div class="post-metadata">

**Author:** ![Russ](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/r/e36b37/32.png) [@Russ](https://community.thinkgeo.com/u/Russ)\
**Post date:** [December 18, 2014, 3:09pm UTC](https://community.thinkgeo.com/t/exception-in-rotationprojection-trying-to-find-point-clicked-by-user/2492/8 "2014-12-18T15:09:43Z")

</div>

I&nbsp;believe&nbsp;I&nbsp;have&nbsp;this&nbsp;mostly&nbsp;sorted.&nbsp;&nbsp;The&nbsp;dynamic&nbsp;overlay,&nbsp;the&nbsp;one&nbsp;that&nbsp;rotation&nbsp;was&nbsp;not&nbsp;working&nbsp;for,&nbsp;was&nbsp;actually&nbsp;rotating&nbsp;but&nbsp;didn’t&nbsp;update&nbsp;the&nbsp;image.&nbsp;&nbsp;I&nbsp;found&nbsp;that&nbsp;the&nbsp;refresh&nbsp;after&nbsp;rotation&nbsp;was&nbsp;only&nbsp;refreshing&nbsp;the&nbsp;static&nbsp;(shape&nbsp;files)&nbsp;overlay&nbsp;using&nbsp;map.Refresh(staticOverlay).&nbsp;&nbsp;So&nbsp;I&nbsp;added&nbsp;code&nbsp;to&nbsp;update&nbsp;the&nbsp;dynamic&nbsp;layer&nbsp;overlay&nbsp;as&nbsp;well.&nbsp;&nbsp;This&nbsp;caused&nbsp;and&nbsp;undesirable&nbsp;“two-step”&nbsp;where&nbsp;you&nbsp;see&nbsp;the&nbsp;static&nbsp;shapes&nbsp;rotate,&nbsp;then&nbsp;the&nbsp;dynamic&nbsp;shapes&nbsp;follow.&nbsp;&nbsp;I&nbsp;also&nbsp;tried&nbsp;just&nbsp;using&nbsp;map.Refresh(),&nbsp;but&nbsp;was&nbsp;surprised&nbsp;that&nbsp;this&nbsp;seems&nbsp;not&nbsp;to&nbsp;work&nbsp;at&nbsp;all&nbsp;for&nbsp;updating&nbsp;the&nbsp;rotation.&nbsp;&nbsp;It&nbsp;thought&nbsp;perhaps&nbsp;I&nbsp;might&nbsp;find&nbsp;a&nbsp;Begin/EndUpdate&nbsp;construct&nbsp;to&nbsp;help&nbsp;here,&nbsp;but&nbsp;was&nbsp;not&nbsp;successful.&nbsp;&nbsp;Still&nbsp;investigating&nbsp;how&nbsp;to&nbsp;get&nbsp;this&nbsp;to&nbsp;rotate&nbsp;all&nbsp;overlays&nbsp;smoothly.  
  
  
  
Looks&nbsp;like&nbsp;I&nbsp;also&nbsp;need&nbsp;to&nbsp;find&nbsp;a&nbsp;way&nbsp;to&nbsp;deal&nbsp;with&nbsp;identifying&nbsp;an&nbsp;object&nbsp;selected&nbsp;by&nbsp;clicking&nbsp;in&nbsp;the&nbsp;dynamic&nbsp;overlay,&nbsp;and&nbsp;then&nbsp;adding&nbsp;a&nbsp;matching&nbsp;feature&nbsp;to&nbsp;the&nbsp;state&nbsp;feedback&nbsp;layer&nbsp;(in&nbsp;a&nbsp;separate&nbsp;state&nbsp;overlay)&nbsp;to&nbsp;show&nbsp;up&nbsp;in&nbsp;the&nbsp;correct&nbsp;place.&nbsp;&nbsp;The&nbsp;state&nbsp;overlay&nbsp;layers&nbsp;now&nbsp;rotate&nbsp;with&nbsp;the&nbsp;other&nbsp;2&nbsp;overlays&nbsp;just&nbsp;fine&nbsp;other&nbsp;than&nbsp;the&nbsp;jerky&nbsp;multi-update&nbsp;redraw.&nbsp;&nbsp;However,&nbsp;once&nbsp;rotated,&nbsp;the&nbsp;click&nbsp;selects&nbsp;the&nbsp;appropriate&nbsp;point&nbsp;in&nbsp;the&nbsp;dynamic&nbsp;overlay,&nbsp;but&nbsp;when&nbsp;using&nbsp;that&nbsp;point&nbsp;to&nbsp;add&nbsp;a&nbsp;new&nbsp;matching&nbsp;feature&nbsp;in&nbsp;the&nbsp;“selected”&nbsp;layer&nbsp;of&nbsp;the&nbsp;state&nbsp;overlay,&nbsp;it&nbsp;shows&nbsp;up&nbsp;in&nbsp;the&nbsp;wrong&nbsp;position.&nbsp;&nbsp;Subsequent&nbsp;rotates&nbsp;move&nbsp;it&nbsp;along,&nbsp;but&nbsp;it’s&nbsp;not&nbsp;in&nbsp;the&nbsp;right&nbsp;place&nbsp;relative&nbsp;to&nbsp;previously&nbsp;rotated&nbsp;objects.&nbsp;&nbsp;Looks&nbsp;like&nbsp;I&nbsp;need&nbsp;to&nbsp;figure&nbsp;out&nbsp;how&nbsp;to&nbsp;get&nbsp;the&nbsp;original&nbsp;location&nbsp;rather&nbsp;than&nbsp;rotated&nbsp;location&nbsp;of&nbsp;the&nbsp;clicked&nbsp;PointShape&nbsp;feature&nbsp;to&nbsp;use&nbsp;for&nbsp;inserting&nbsp;a&nbsp;matching&nbsp;PointShape&nbsp;feature&nbsp;into&nbsp;the&nbsp;state&nbsp;layer.&nbsp;&nbsp;Not&nbsp;yet&nbsp;sure&nbsp;how&nbsp;that&nbsp;is&nbsp;done.

---

<div class="post-metadata">

**Author:** ![Troy](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/t/85f322/32.png) [@Troy](https://community.thinkgeo.com/u/Troy)\
**Post date:** [December 19, 2014, 4:48am UTC](https://community.thinkgeo.com/t/exception-in-rotationprojection-trying-to-find-point-clicked-by-user/2492/9 "2014-12-19T04:48:46Z")

</div>

Hi&nbsp;Russ,  
  
  
  
For&nbsp;the&nbsp;RotationProjection&nbsp;unit,&nbsp;I&nbsp;just&nbsp;think&nbsp;there&nbsp;might&nbsp;be&nbsp;some&nbsp;enhancements&nbsp;need&nbsp;us&nbsp;to&nbsp;add.&nbsp;As&nbsp;for&nbsp;why&nbsp;the&nbsp;the&nbsp;points&nbsp;still&nbsp;do&nbsp;not&nbsp;along&nbsp;with&nbsp;shape&nbsp;file&nbsp;rotating,&nbsp;as&nbsp;we&nbsp;don’t&nbsp;have&nbsp;any&nbsp;codes&nbsp;or&nbsp;data,&nbsp;it&nbsp;is&nbsp;impossible&nbsp;for&nbsp;us&nbsp;to&nbsp;recreate&nbsp;it.&nbsp;But&nbsp;we&nbsp;created&nbsp;a&nbsp;sample&nbsp;and&nbsp;hope&nbsp;it&nbsp;is&nbsp;what&nbsp;you&nbsp;are&nbsp;looking&nbsp;for.&nbsp;Please&nbsp;check&nbsp;it.  
  
  
  
Actually,&nbsp;I&nbsp;didn’t&nbsp;get&nbsp;the&nbsp;whole&nbsp;of&nbsp;your&nbsp;requirements&nbsp;and&nbsp;issues,&nbsp;would&nbsp;you&nbsp;mind&nbsp;to&nbsp;take&nbsp;some&nbsp;minuets&nbsp;to&nbsp;build&nbsp;a&nbsp;sample&nbsp;which&nbsp;includes&nbsp;your&nbsp;issues&nbsp;and&nbsp;requirements?&nbsp;That&nbsp;will&nbsp;help&nbsp;us&nbsp;a&nbsp;lot&nbsp;to&nbsp;towards&nbsp;to&nbsp;the&nbsp;right&nbsp;direction.  
  
  
  
Thanks,  
  
Troy  
  
  
  
  
  
  
  
  
[001\_Post12404.zip](https://community.thinkgeo.com/uploads/default/original/2X/6/6a9dece91c20b6bb7def19739e76a428786eaf68.zip) (103 KB)

---

<div class="post-metadata">

**Author:** ![Russ](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/r/e36b37/32.png) [@Russ](https://community.thinkgeo.com/u/Russ)\
**Post date:** [January 5, 2015, 12:58pm UTC](https://community.thinkgeo.com/t/exception-in-rotationprojection-trying-to-find-point-clicked-by-user/2492/10 "2015-01-05T12:58:07Z")

</div>

Never&nbsp;mind,&nbsp;I&nbsp;sorted&nbsp;it&nbsp;out.&nbsp;  
&nbsp;&nbsp;  
&nbsp;Not&nbsp;sure&nbsp;why,&nbsp;but&nbsp;your&nbsp;sample&nbsp;seems&nbsp;to&nbsp;work&nbsp;fine&nbsp;just&nbsp;calling&nbsp;Map.Refresh&nbsp;with&nbsp;no&nbsp;arguments.&nbsp;&nbsp;When&nbsp;I&nbsp;apply&nbsp;a&nbsp;rotation,&nbsp;that&nbsp;overload&nbsp;does&nbsp;nothing&nbsp;at&nbsp;all,&nbsp;and&nbsp;the&nbsp;map&nbsp;does&nbsp;not&nbsp;rotate.&nbsp;&nbsp;However,&nbsp;I&nbsp;noticed&nbsp;an&nbsp;overload&nbsp;that&nbsp;takes&nbsp;a&nbsp;collection&nbsp;of&nbsp;overlays.&nbsp;&nbsp;So&nbsp;instead&nbsp;of&nbsp;calling&nbsp;refresh&nbsp;on&nbsp;each&nbsp;overlay&nbsp;one&nbsp;at&nbsp;a&nbsp;time&nbsp;(which&nbsp;gave&nbsp;the&nbsp;obvious&nbsp;single&nbsp;overlay&nbsp;at&nbsp;a&nbsp;time&nbsp;rotate&nbsp;and&nbsp;draw),&nbsp;I&nbsp;loaded&nbsp;a&nbsp;collection&nbsp;and&nbsp;used&nbsp;the&nbsp;collection&nbsp;Refresh&nbsp;overload.&nbsp;&nbsp;This&nbsp;overload&nbsp;seems&nbsp;to&nbsp;have&nbsp;access&nbsp;to&nbsp;what&nbsp;I&nbsp;was&nbsp;looking&nbsp;for&nbsp;earlier,&nbsp;namely&nbsp;a&nbsp;Begin/EndUpdate&nbsp;logic.&nbsp;&nbsp;In&nbsp;any&nbsp;case,&nbsp;using&nbsp;that&nbsp;overload&nbsp;updates&nbsp;all&nbsp;overlays&nbsp;at&nbsp;the&nbsp;same&nbsp;moment.&nbsp;&nbsp;But&nbsp;for&nbsp;future&nbsp;reference,&nbsp;providing&nbsp;a&nbsp;public&nbsp;Begin/EndUpdate&nbsp;pattern&nbsp;for&nbsp;users&nbsp;would&nbsp;be&nbsp;useful.

---

<div class="post-metadata">

**Author:** ![Johnny](https://community.thinkgeo.com/user_avatar/community.thinkgeo.com/johnny/32/19044_2.png) [@Johnny](https://community.thinkgeo.com/u/Johnny)\
**Post date:** [January 6, 2015, 6:31am UTC](https://community.thinkgeo.com/t/exception-in-rotationprojection-trying-to-find-point-clicked-by-user/2492/11 "2015-01-06T06:31:11Z")

</div>

Hi&nbsp;Russ,&nbsp;  
&nbsp;&nbsp;  
&nbsp;Glad&nbsp;to&nbsp;hear&nbsp;that&nbsp;the&nbsp;issue&nbsp;has&nbsp;been&nbsp;resolved&nbsp;and&nbsp;thanks&nbsp;for&nbsp;your&nbsp;suggestion.&nbsp;As&nbsp;far&nbsp;as&nbsp;I&nbsp;know,&nbsp;there&nbsp;isn’t&nbsp;any&nbsp;differences&nbsp;between&nbsp;the&nbsp;2&nbsp;overloads&nbsp;of&nbsp;“Refresh”&nbsp;method,&nbsp;they&nbsp;are&nbsp;calling&nbsp;the&nbsp;same&nbsp;core&nbsp;method.I’m&nbsp;not&nbsp;sure&nbsp;whether&nbsp;there&nbsp;is&nbsp;any&nbsp;missing&nbsp;we&nbsp;have,&nbsp;could&nbsp;you&nbsp;please&nbsp;update&nbsp;your&nbsp;demo&nbsp;to&nbsp;us&nbsp;for&nbsp;a&nbsp;further&nbsp;debug?&nbsp;  
&nbsp;&nbsp;  
&nbsp;I&nbsp;guess&nbsp;making&nbsp;the&nbsp;Refresh&nbsp;called&nbsp;like&nbsp;“Begin/EndUpdate”&nbsp;pattern&nbsp;is&nbsp;more&nbsp;obvious&nbsp;for&nbsp;use,&nbsp;but&nbsp;a&nbsp;penitential&nbsp;problem&nbsp;is&nbsp;that&nbsp;is&nbsp;a&nbsp;bit&nbsp;more&nbsp;complicated&nbsp;and&nbsp;not&nbsp;too&nbsp;straight&nbsp;forward,&nbsp;just&nbsp;like&nbsp;when&nbsp;we&nbsp;are&nbsp;using&nbsp;EnterLock/ExiteLock&nbsp;for&nbsp;multiple&nbsp;threads,&nbsp;I&nbsp;will&nbsp;show&nbsp;your&nbsp;suggestion&nbsp;to&nbsp;development&nbsp;guys&nbsp;to&nbsp;see&nbsp;if&nbsp;they&nbsp;have&nbsp;any&nbsp;ideas.&nbsp;  
&nbsp;&nbsp;  
&nbsp;Thanks,&nbsp;  
&nbsp;Johnny

---

<div class="post-metadata">

**Author:** ![Russ](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/r/e36b37/32.png) [@Russ](https://community.thinkgeo.com/u/Russ)\
**Post date:** [January 6, 2015, 10:17pm UTC](https://community.thinkgeo.com/t/exception-in-rotationprojection-trying-to-find-point-clicked-by-user/2492/12 "2015-01-06T22:17:03Z")

</div>

Not&nbsp;sure&nbsp;why&nbsp;the&nbsp;difference.&nbsp;&nbsp;I&nbsp;can&nbsp;only&nbsp;say&nbsp;that&nbsp;when&nbsp;I&nbsp;call&nbsp;it&nbsp;separately&nbsp;for&nbsp;each&nbsp;overlay,&nbsp;I&nbsp;see&nbsp;significant&nbsp;incremental&nbsp;updates.&nbsp;&nbsp;When&nbsp;I&nbsp;pass&nbsp;an&nbsp;array&nbsp;of&nbsp;the&nbsp;overlays,&nbsp;I&nbsp;see&nbsp;a&nbsp;single&nbsp;update&nbsp;all&nbsp;at&nbsp;once.&nbsp;&nbsp;And&nbsp;though&nbsp;I’ve&nbsp;not&nbsp;timed&nbsp;it,&nbsp;the&nbsp;perception&nbsp;is&nbsp;that&nbsp;the&nbsp;process&nbsp;completes&nbsp;faster.

---

<div class="post-metadata">

**Author:** ![Ethan](https://community.thinkgeo.com/user_avatar/community.thinkgeo.com/ethan/32/19964_2.png) [@Ethan](https://community.thinkgeo.com/u/Ethan)\
**Post date:** [January 7, 2015, 4:53am UTC](https://community.thinkgeo.com/t/exception-in-rotationprojection-trying-to-find-point-clicked-by-user/2492/13 "2015-01-07T04:53:04Z")

</div>

Hi&nbsp;Russ,&nbsp;  
&nbsp;&nbsp;  
&nbsp;That’s&nbsp;true&nbsp;if&nbsp;call&nbsp;the&nbsp;refresh&nbsp;separately&nbsp;for&nbsp;each&nbsp;overlay&nbsp;will&nbsp;incremental&nbsp;update&nbsp;and&nbsp;take&nbsp;more&nbsp;time,&nbsp;because&nbsp;only&nbsp;when&nbsp;one&nbsp;overlay&nbsp;is&nbsp;completely&nbsp;drawn&nbsp;and&nbsp;update&nbsp;the&nbsp;map,&nbsp;the&nbsp;next&nbsp;overlay&nbsp;can&nbsp;be&nbsp;drawn.&nbsp;But&nbsp;if&nbsp;refresh&nbsp;an&nbsp;array&nbsp;of&nbsp;overlay,&nbsp;the&nbsp;map&nbsp;drawn&nbsp;these&nbsp;overlay&nbsp;to&nbsp;one&nbsp;canvas&nbsp;then&nbsp;update&nbsp;to&nbsp;map&nbsp;only&nbsp;once,&nbsp;so&nbsp;it&nbsp;will&nbsp;be&nbsp;faster.&nbsp;&nbsp;&nbsp;  
&nbsp;&nbsp;  
&nbsp;As&nbsp;for&nbsp;the&nbsp;refresh&nbsp;overload,&nbsp;would&nbsp;you&nbsp;please&nbsp;add&nbsp;below&nbsp;code&nbsp;before&nbsp;you&nbsp;call&nbsp;Map.Refresh()&nbsp;and&nbsp;see&nbsp;if&nbsp;the&nbsp;returned&nbsp;value&nbsp;is&nbsp;true?&nbsp;&nbsp;  
&nbsp;&nbsp;  
&nbsp;The&nbsp;parameter&nbsp;is&nbsp;overlay&nbsp;that&nbsp;passing&nbsp;into&nbsp;Refresh&nbsp;method.&nbsp;&nbsp;  
&nbsp;`Bool isContains = Map.Overlays.Contains(overlayToRefresh); `&nbsp;  
&nbsp;&nbsp;  
&nbsp;I’m&nbsp;guessing&nbsp;the&nbsp;reference&nbsp;of&nbsp;overlay&nbsp;to&nbsp;refresh&nbsp;have&nbsp;changed&nbsp;and&nbsp;no&nbsp;longer&nbsp;belongs&nbsp;to&nbsp;Map.Overlays,&nbsp;so&nbsp;when&nbsp;call&nbsp;refresh&nbsp;without&nbsp;parameter,&nbsp;the&nbsp;map&nbsp;don’t&nbsp;changes.&nbsp;&nbsp;  
&nbsp;&nbsp;  
&nbsp;Thanks,&nbsp;  
&nbsp;&nbsp;  
&nbsp;Kevin
