zoukankan      html  css  js  c++  java
  • 实现MapControl与GlobeControl同步

     http://anshien.blog.163.com/blog/static/16996630820107309045137/

    在GIS开发过程中,难免会遇到各种各样的需求,而作为程序员的我们就必须要想方设法把这些需求转换为功能实现,遇到奇怪的要求只能一边郁闷一边着手。。。

           抱怨到此为止,由此入正题。之前有遇到MapControl与PageLayoutControl的同步问题,这倒不是什么难题,ArcGISEngine的SDK中有实例介绍。但这次是MapControl与GlobeControl的同步。经过一段时间的研究,终是找到了解决办法,虽然有些笨拙,但为后来者提供学习还是可以的,望见谅!以下是实例代码:

                IScene scene = GlobeControl.Globe.GlobeDisplay.Scene;
                ISceneViewer sceneViewer = GlobeControl.Globe.GlobeDisplay.ActiveViewer;

                IGlobeCamera pGlobeCamera = sceneViewer.Camera as IGlobeCamera;
                IGlobeViewUtil pGlobeViewUtil = pGlobeCamera as IGlobeViewUtil;
                IEnvelope pEnvelope = new EnvelopeClass();

                pGlobeViewUtil.QueryVisibleGeographicExtent(pEnvelope);//得到GlobeControl的Extent
                
                IPoint minPoint = new PointClass();
                minPoint = GetProjectPoint(pEnvelope.XMin, pEnvelope.YMin);//获得从投影变换后的得到的平面坐标
                (minPoint as IZAware).ZAware = true;
                minPoint .Z = pEnvelope.ZMin;
                IPoint maxPoint = new PointClass();
                maxPoint = GetProjectPoint(pEnvelope.XMax, pEnvelope.YMax);
                (maxPoint as IZAware).ZAware = true;
                maxPoint.Z = pEnvelope.ZMax;
                IEnvelope GeoEnvelope = new EnvelopeClass();

                //设置平面Extent
                GetEnvelope(minPoint,maxPoint,out GeoEnvelope);

                //将得到的Envelope赋值给MapControl

                 MapControl.ActiveView.Extent = GeoEnvelope;
                 MapControl.ActiveView.Activate(MapControl.hWnd);
                 MapControl.ActiveView.Refresh();

        简单介绍这段程序的使用,当在TapControl中从GlobeControl到MapControl的切换时,以上的代码就能实现位置同步。

         而从MapControl到GlobeControl即可用IGlobeCamera.SetToZoomToExtents方法就能够实现。

  • 相关阅读:
    SQL Server复制情况下的高可用方案(一)镜像+复制
    sqlserver数据库镜像运行模式
    普通PC机支持内存128G,单条32G内存
    ICSharpCode.SharpZipLib 压缩、解压文件 附源码
    利用SharpZipLib进行字符串的压缩和解压缩
    SQL Server常见数据类型介绍
    .net中压缩和解压缩的处理
    solr字段压缩属性compressed新版本已经移除
    solr schema.xml Field属性详解
    Altmetric
  • 原文地址:https://www.cnblogs.com/wangzihao/p/1909815.html
Copyright © 2011-2022 走看看