Click or drag to resize

Viewpoint Constructor (MapPoint, Double, Double)

Initializes a new instance of the Viewpoint class with center point, scale and rotation.

Namespace:  Esri.ArcGISRuntime.Mapping
Assembly:  Esri.ArcGISRuntime (in Esri.ArcGISRuntime.dll) Version: 100.11.0
public Viewpoint(
	MapPoint center,
	double scale,
	double rotation


Type: Esri.ArcGISRuntime.GeometryMapPoint
The center of the visible area.
Type: SystemDouble
Map Scale, Ratio between the distance on the map and the corresponding distance on the ground.
Type: SystemDouble
The rotation angle in degrees between 0 and 360.
ArgumentExceptionscale cannot be NaN.
ArgumentOutOfRangeExceptionscale must be greater than 0.
The spatial reference of the center point cannot be null.


Example Name: FeatureLayerRenderingModeMap

Render features statically or dynamically by setting the feature layer rendering mode.

Code example screen shot.

// Copyright 2017 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:
// 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.Data;
using Esri.ArcGISRuntime.Geometry;
using Esri.ArcGISRuntime.Mapping;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Windows;

namespace ArcGISRuntime.WPF.Samples.FeatureLayerRenderingModeMap
        name: "Feature layer rendering mode (map)",
        category: "Layers",
        description: "Render features statically or dynamically by setting the feature layer rendering mode.",
        instructions: "Click the button to trigger the same zoom animation on both static and dynamic maps.",
        tags: new[] { "dynamic", "feature layer", "features", "rendering", "static" })]
    public partial class FeatureLayerRenderingModeMap
        // Viewpoint locations for map view to zoom in and out to.
        private Viewpoint _zoomOutPoint = new Viewpoint(new MapPoint(-118.37, 34.46, SpatialReferences.Wgs84), 650000, 0);
        private Viewpoint _zoomInPoint = new Viewpoint(new MapPoint(-118.45, 34.395, SpatialReferences.Wgs84), 50000, 90);

        public FeatureLayerRenderingModeMap()

            // Setup the control references and execute initialization. 

        private void Initialize()
            // Set the initial viewpoint on the maps.
            MyStaticMapView.Map = new Map
                InitialViewpoint = _zoomOutPoint

            MyDynamicMapView.Map = new Map
                InitialViewpoint = _zoomOutPoint

            // Create service feature table using a point, polyline, and polygon service.
            ServiceFeatureTable pointServiceFeatureTable = new ServiceFeatureTable(new Uri(""));
            ServiceFeatureTable polylineServiceFeatureTable = new ServiceFeatureTable(new Uri(""));
            ServiceFeatureTable polygonServiceFeatureTable = new ServiceFeatureTable(new Uri(""));

            // Create feature layers from service feature tables
            List<FeatureLayer> featureLayers = new List<FeatureLayer>
                new FeatureLayer(polygonServiceFeatureTable),
                new FeatureLayer(polylineServiceFeatureTable),
                new FeatureLayer(pointServiceFeatureTable)

            // Add each layer to the map as a static layer and a dynamic layer
            foreach (FeatureLayer layer in featureLayers)
                // Add the static layer to the top map view
                layer.RenderingMode = FeatureRenderingMode.Static;

                // Add the dynamic layer to the bottom map view
                FeatureLayer dynamicLayer = (FeatureLayer)layer.Clone();
                dynamicLayer.RenderingMode = FeatureRenderingMode.Dynamic;

            // Set the view point of both MapViews.

        private async void OnZoomClick(object sender, System.Windows.RoutedEventArgs e)
                // Initiate task to zoom both map views in.  
                Task t1 = MyStaticMapView.SetViewpointAsync(_zoomInPoint, TimeSpan.FromSeconds(5));
                Task t2 = MyDynamicMapView.SetViewpointAsync(_zoomInPoint, TimeSpan.FromSeconds(5));
                await Task.WhenAll(t1, t2);

                // Delay start of next set of zoom tasks.
                await Task.Delay(2000);

                // Initiate task to zoom both map views out. 
                Task t3 = MyStaticMapView.SetViewpointAsync(_zoomOutPoint, TimeSpan.FromSeconds(5));
                Task t4 = MyDynamicMapView.SetViewpointAsync(_zoomOutPoint, TimeSpan.FromSeconds(5));
                await Task.WhenAll(t3, t4);
            catch (Exception ex)
                MessageBox.Show(ex.ToString(), "Error");
            <RowDefinition Height="auto" />
            <RowDefinition Height="*" />
            <RowDefinition Height="auto" />
            <RowDefinition Height="*" />
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="*" />
        <Label Content="Static mode:"
               Grid.Row="0" Grid.ColumnSpan="2"
               Foreground="Blue" FontWeight="SemiBold" />
        <esri:MapView x:Name="MyStaticMapView"
                        Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" />
        <Label Content="Dynamic mode:"
               Grid.Row="2" Grid.Column="0"
               Foreground="Blue" FontWeight="SemiBold" />
        <Button Content="Animated zoom"
                Grid.Row="2" Grid.Column="1"
                Click="OnZoomClick" />
        <esri:MapView x:Name="MyDynamicMapView"
                        Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" />
See Also
Additional Examples
Hyperlink to ExampleDescription
Animate3DGraphicAn `OrbitGeoElementCameraController` follows a graphic while the graphic's position and rotation are animated.
FeatureLayerRenderingModeMapRender features statically or dynamically by setting the feature layer rendering mode.