Parameters
- camera
- Camera
Exception | Description |
---|---|
ArcGIS.Core.CalledOnWrongThreadException | This method or property must be called within the lambda passed to QueuedTask.Run. |
//Change a map frame's camera settings. //Perform on the worker thread await QueuedTask.Run(() => { //Reference MapFrame MapFrame mf = layout.FindElement("Map Frame") as MapFrame; //Reference the camera associated with the map frame and change the scale Camera cam = mf.Camera; cam.Scale = 100000; //Set the map frame extent based on the new camera info mf.SetCamera(cam); });
//Change map frame extent to single feature with 10 percent buffer //Process on the worker thread await QueuedTask.Run(() => { //Reference the mapframe and its associated map MapFrame mf = layout.FindElement("Map Frame") as MapFrame; Map m = mf.Map; //Reference a feature layer and build a query (to return a single feature) FeatureLayer fl = m.FindLayers("GreatLakes").First() as FeatureLayer; QueryFilter qf = new QueryFilter(); string whereClause = "NAME = 'Lake Erie'"; qf.WhereClause = whereClause; //Zoom to the feature using (ArcGIS.Core.Data.RowCursor rowCursor = fl.Search(qf)) { while (rowCursor.MoveNext()) { //Get the shape from the row and set extent using (var feature = rowCursor.Current as ArcGIS.Core.Data.Feature) { Polygon polygon = feature.GetShape() as Polygon; Envelope env = polygon.Extent as Envelope; mf.SetCamera(env); //Zoom out 15 percent Camera cam = mf.Camera; cam.Scale = cam.Scale * 1.15; mf.SetCamera(cam); } } } });
Target Platforms: Windows 11, Windows 10, Windows 8.1