如何在ArcGlobe中实现zoomtolayer (How to zoom to layer in globe)
Zooming to a layer in globe
1.To zoom to a layer in globe get a handle to the layer as shown in the following code example. To get a handle to a specific layer, pass in the layer index.
在globe中聚焦到一个图层,就像以下代码实例所显示的那样得到该图层的句柄。通过传递图层的索引来得到一个具体图层的句柄。
[C#]
ESRI.ArcGIS.Analyst3D.IScene scene = (ESRI.ArcGIS.Analyst3D.IScene)globe; // Explicit cast.
ESRI.ArcGIS.Carto.ILayer layer = scene.get_Layer(layerIndex);
当然,ILayer不一定要通过图层的索引来获得,也可以通过图层名称等来获取。
2.Now, get the extent of the layer using the following code example:
现在,使用下列代码实例来获得图层的范围。
[C#]
ESRI.ArcGIS.Geometry.IEnvelope envelope = layer.AreaOfInterest.Envelope;
3.After getting the extent, the IGlobeCamera.SetToZoomToExtents method can be used to zoom to the extent of the layer. See the following code example:
在得到图层的范围之后,IGlobeCamera.SetToZoomToExtents的方法可以用来聚焦到该图层的范围。看下列代码实例。
[C#]
ESRI.ArcGIS.Analyst3D.ICamera camera = globeDisplay.ActiveViewer.Camera;
ESRI.ArcGIS.GlobeCore.IGlobeCamera globeCamera = (ESRI.ArcGIS.GlobeCore.IGlobeCamera)camera; // Explicit cast.
ESRI.ArcGIS.Analyst3D.ISceneViewer sceneViewer = globeDisplay.ActiveViewer;
globeCamera.SetToZoomToExtents(envelope, globe, sceneViewer);
以上代码都经过测试完全可用(废话,易水的帮助还有错吗...)~嘿嘿~
转载自:https://blog.csdn.net/zapzqc/article/details/2043549