Public Overloads Sub SetCamera( _ ByVal layer As Layer, _ Optional ByVal useSelectedFeatures As Boolean _ )
public void SetCamera( Layer layer, bool useSelectedFeatures )
Parameters
- layer
- Layer
- useSelectedFeatures
Public Overloads Sub SetCamera( _ ByVal layer As Layer, _ Optional ByVal useSelectedFeatures As Boolean _ )
public void SetCamera( Layer layer, bool useSelectedFeatures )
| Exception | Description |
|---|---|
| ArcGIS.Core.CalledOnWrongThreadException | This method or property must be called within the lambda passed to QueuedTask.Run. |
{
//Create a map frame and set its camera by zooming to the extent of an existing bookmark.
//Construct on the worker thread
//Build 2D envelope geometry
Coordinate2D mf_ll = new Coordinate2D(6.0, 8.5);
Coordinate2D mf_ur = new Coordinate2D(8.0, 10.5);
Envelope mf_env = EnvelopeBuilderEx.CreateEnvelope(mf_ll, mf_ur);
//Reference map, create MF and add to layout
MapProjectItem mapPrjItem = Project.Current.GetItems<MapProjectItem>()
.FirstOrDefault(item => item.Name.Equals("Map"));
Map mfMap = mapPrjItem.GetMap();
Bookmark bookmark = mfMap.GetBookmarks().FirstOrDefault(
b => b.Name == "Great Lakes");
MapFrame mfElm = ElementFactory.Instance.CreateMapFrameElement(
layout, mf_env, mfMap, "New Map Frame");
//Zoom to bookmark
mfElm.SetCamera(bookmark);
}
{
//Zoom map frame to the extent of a single layer.
//Note: Must be on QueuedTask.Run
//Reference map and layer
Map m = mapFrame.Map;
FeatureLayer lyr = m.FindLayers("GreatLakes").First() as FeatureLayer;
//Set the map frame extent to all features in the layer
mapFrame.SetCamera(lyr, false);
}
{
//Change map frame extent to single feature with 10 percent buffer
//Note: Must be on QueuedTask.Run
//Reference the mapframe and its associated map
Map m = mapFrame.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;
mapFrame.SetCamera(env);
//Zoom out 15 percent
Camera cam = mapFrame.Camera;
cam.Scale = cam.Scale * 1.15;
mapFrame.SetCamera(cam);
}
}
}
}
Target Platforms: Windows 11 Home, Pro, Enterprise (64 bit)