Skip To Content ArcGIS for Developers Sign In Dashboard

ArcGIS Runtime SDK for .NET

Map rotation

This code sample is available for these platforms:
View Sample on GitHub

Rotate a map.

screenshot

Use case

A user may wish to view the map in an orientation other than north-facing.

How it works

  1. Instantiate an Map object.
  2. Display the map in a map view.
  3. Use SetViewpointRotationAsync to indicate the rotation angle.

Relevant API

  • Map
  • Compass
  • MapView

Tags

SetViewpointRotationAsync, rotate

Sample Code

<UserControl
    x:Class="ArcGISRuntime.UWP.Samples.MapRotation.MapRotation"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:esriUI="using:Esri.ArcGISRuntime.UI.Controls">
    <Grid>
        <esriUI:MapView x:Name="MyMapView" />
        <Border BorderBrush="Black" BorderThickness="1" Background="White"
                HorizontalAlignment="Right" VerticalAlignment="Top"
                Margin="30" Padding="20" Width="375">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*" />
                    <ColumnDefinition Width="50" />
                </Grid.ColumnDefinitions>
                <Slider x:Name="MySlider"
                        Grid.Column="0"
                        Minimum="0" Maximum="180" Value="0"
                        ValueChanged="MySlider_ValueChanged" />
                <TextBlock x:Name="MyTextBlock"
                           Text="0°"
                           Margin="5,8,0,0"
                           TextAlignment="Center" FontWeight="SemiBold"
                           Grid.Column="1" />
            </Grid>
        </Border>
    </Grid>
</UserControl>
// Copyright 2018 Esri.
//
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
// You may obtain a copy of the License at: http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an 
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific 
// language governing permissions and limitations under the License.

using Esri.ArcGISRuntime.Mapping;
using Windows.UI.Xaml.Controls.Primitives;

namespace ArcGISRuntime.UWP.Samples.MapRotation
{
    [ArcGISRuntime.Samples.Shared.Attributes.Sample(
        "Map rotation",
        "MapView",
        "This sample demonstrates how to rotate a map.",
        "Use the available slider to dictate the number of degrees the map is rotated")]
    public partial class MapRotation
    {
        public MapRotation()
        {
            InitializeComponent();

            Initialize();
        }

        private void Initialize()
        {
            // Assign the map to the MapView
            MyMapView.Map = new Map(Basemap.CreateStreets());
        }

        private void MySlider_ValueChanged(object sender, RangeBaseValueChangedEventArgs e)
        {
            // Display the rotation value in the Label formatted nicely with degree symbol.
            MyTextBlock.Text = $"{MySlider.Value:0}°";

            // Set the MapView rotation to that of the Slider.
            MyMapView.SetViewpointRotationAsync(e.NewValue);
        }
    }
}