在GIS开发过程中,难免会遇到各种各样的需求,而作为程序员的我们就必须要想方设法把这些需求转换为功能实现,遇到奇怪的要求只能一边郁闷一边着手。。。 抱怨到此为止,由此入正题。之前有遇到MapControl与PageLayoutControl的同步问题,这倒不是什么难题,ArcGISEngine的SDK中有实例介绍。但这次是MapControl与GlobeControl的同步。经过一段时间的研究,终是找到了解决办法,虽然有些笨拙,但为后来者提供学习还是可以的,望见谅!以下是实例代码: IScene scene = GlobeControl.Globe.GlobeDisplay.Scene; IGlobeCamera pGlobeCamera = sceneViewer.Camera as IGlobeCamera; pGlobeViewUtil.QueryVisibleGeographicExtent(pEnvelope);//得到GlobeControl的Extent //设置平面Extent //将得到的Envelope赋值给MapControl MapControl.ActiveView.Extent = GeoEnvelope; 简单介绍这段程序的使用,当在TapControl中从GlobeControl到MapControl的切换时,以上的代码就能实现位置同步。 而从MapControl到GlobeControl即可用IGlobeCamera.SetToZoomToExtents方法就能够实现。 |
|
来自: 秋寒月 > 《arcglobe开发》