Is there a way in ArcGIS Runtime 100.1.0 to turn off the map rotation? When use pinch gesture it rotates the map view is there a way to disable that? In ArcGIS 10.2.9 you there was a function mapView.setAllowRotationByPinch(boolean). Does something like that exist in 100.1.0?
<SPAN class="keyword token">package</SPAN> com<SPAN class="punctuation token">.</SPAN>arcgis<SPAN class="punctuation token">.</SPAN>apps<SPAN class="punctuation token">.</SPAN>rotate <SPAN class="keyword token">import</SPAN> android<SPAN class="punctuation token">.</SPAN>content<SPAN class="punctuation token">.</SPAN>Context <SPAN class="keyword token">import</SPAN> android<SPAN class="punctuation token">.</SPAN>support<SPAN class="punctuation token">.</SPAN>v7<SPAN class="punctuation token">.</SPAN>app<SPAN class="punctuation token">.</SPAN>AppCompatActivity <SPAN class="keyword token">import</SPAN> android<SPAN class="punctuation token">.</SPAN>os<SPAN class="punctuation token">.</SPAN>Bundle <SPAN class="keyword token">import</SPAN> android<SPAN class="punctuation token">.</SPAN>util<SPAN class="punctuation token">.</SPAN>Log <SPAN class="keyword token">import</SPAN> android<SPAN class="punctuation token">.</SPAN>view<SPAN class="punctuation token">.</SPAN>MotionEvent <SPAN class="keyword token">import</SPAN> com<SPAN class="punctuation token">.</SPAN>esri<SPAN class="punctuation token">.</SPAN>arcgisruntime<SPAN class="punctuation token">.</SPAN>mapping<SPAN class="punctuation token">.</SPAN>ArcGISMap <SPAN class="keyword token">import</SPAN> com<SPAN class="punctuation token">.</SPAN>esri<SPAN class="punctuation token">.</SPAN>arcgisruntime<SPAN class="punctuation token">.</SPAN>mapping<SPAN class="punctuation token">.</SPAN>Basemap <SPAN class="keyword token">import</SPAN> com<SPAN class="punctuation token">.</SPAN>esri<SPAN class="punctuation token">.</SPAN>arcgisruntime<SPAN class="punctuation token">.</SPAN>mapping<SPAN class="punctuation token">.</SPAN>view<SPAN class="punctuation token">.</SPAN>DefaultMapViewOnTouchListener <SPAN class="keyword token">import</SPAN> com<SPAN class="punctuation token">.</SPAN>esri<SPAN class="punctuation token">.</SPAN>arcgisruntime<SPAN class="punctuation token">.</SPAN>mapping<SPAN class="punctuation token">.</SPAN>view<SPAN class="punctuation token">.</SPAN>MapView <SPAN class="keyword token">class</SPAN> <SPAN class="token class-name">MainActivity</SPAN> <SPAN class="operator token">:</SPAN> <SPAN class="token function">AppCompatActivity</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN> override fun <SPAN class="token function">onCreate</SPAN><SPAN class="punctuation token">(</SPAN>savedInstanceState<SPAN class="operator token">:</SPAN> Bundle<SPAN class="operator token">?</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN> <SPAN class="keyword token">super</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="token function">onCreate</SPAN><SPAN class="punctuation token">(</SPAN>savedInstanceState<SPAN class="punctuation token">)</SPAN> <SPAN class="token function">setContentView</SPAN><SPAN class="punctuation token">(</SPAN>R<SPAN class="punctuation token">.</SPAN>layout<SPAN class="punctuation token">.</SPAN>activity_main<SPAN class="punctuation token">)</SPAN> val map <SPAN class="operator token">=</SPAN> <SPAN class="token function">ArcGISMap</SPAN><SPAN class="punctuation token">(</SPAN>Basemap<SPAN class="punctuation token">.</SPAN><SPAN class="token function">createDarkGrayCanvasVector</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN> val mapV <SPAN class="operator token">=</SPAN> <SPAN class="token function">findViewById</SPAN><SPAN class="punctuation token">(</SPAN>R<SPAN class="punctuation token">.</SPAN>id<SPAN class="punctuation token">.</SPAN>mapView<SPAN class="punctuation token">)</SPAN> as MapView mapV<SPAN class="punctuation token">.</SPAN>map <SPAN class="operator token">=</SPAN> map mapV<SPAN class="punctuation token">.</SPAN><SPAN class="token function">DisableRotation</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">}</SPAN> fun MapView<SPAN class="punctuation token">.</SPAN><SPAN class="token function">DisableRotation</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN> <SPAN class="keyword token">this</SPAN><SPAN class="punctuation token">.</SPAN>onTouchListener <SPAN class="operator token">=</SPAN> <SPAN class="token function">NoRotate</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="keyword token">this</SPAN><SPAN class="punctuation token">.</SPAN>context<SPAN class="punctuation token">,</SPAN> <SPAN class="keyword token">this</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">}</SPAN> <SPAN class="keyword token">private</SPAN> inner <SPAN class="keyword token">class</SPAN> <SPAN class="token class-name">NoRotate</SPAN><SPAN class="punctuation token">(</SPAN>context<SPAN class="operator token">:</SPAN> Context<SPAN class="punctuation token">,</SPAN> mapView<SPAN class="operator token">:</SPAN> MapView<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">:</SPAN> <SPAN class="token function">DefaultMapViewOnTouchListener</SPAN><SPAN class="punctuation token">(</SPAN>context<SPAN class="punctuation token">,</SPAN> mapView<SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN> override fun <SPAN class="token function">onRotate</SPAN><SPAN class="punctuation token">(</SPAN>event<SPAN class="operator token">:</SPAN> MotionEvent<SPAN class="punctuation token">,</SPAN> rotationAngle<SPAN class="operator token">:</SPAN> Double<SPAN class="punctuation token">)</SPAN><SPAN class="operator token">:</SPAN> Boolean <SPAN class="punctuation token">{</SPAN> Log<SPAN class="punctuation token">.</SPAN><SPAN class="token function">e</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"NOHE"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"ROTATED"</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">return</SPAN> <SPAN class="token boolean">true</SPAN> <SPAN class="punctuation token">}</SPAN> override fun <SPAN class="token function">onLongPress</SPAN><SPAN class="punctuation token">(</SPAN>e<SPAN class="operator token">:</SPAN> MotionEvent<SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN> Log<SPAN class="punctuation token">.</SPAN><SPAN class="token function">e</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="string token">"NOHE"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"SANITY"</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">super</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="token function">onLongPress</SPAN><SPAN class="punctuation token">(</SPAN>e<SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">}</SPAN> <SPAN class="punctuation token">}</SPAN> <SPAN class="punctuation token">}</SPAN> <SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>
This is a sample in kotlin showing how to disable map rotation.
Hope this helps!
DexterMorgan54,
I passed this along to our development team. One thing that was suggested to me by them was to override the DefaultMapTouchListener::OnRotation() method so it does not call the super() method. I have not had a chance to test this as of yet, but when I get some more time, I can test / write a extension function in Kotlin for this.
Signed in members can post, follow updates, and more. New here? Register a free account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.