Ejemplo n.º 1
0
        private IEnvelope pEnv;             //记录数据视图的Extent

        /// <summary>
        /// 同步鹰眼
        /// </summary>
        private void SynchronizeEagleEye()
        {
            try
            {
                if (EagleEyeMapControl.LayerCount > 0)
                {
                    EagleEyeMapControl.ClearLayers();
                }
                //设置鹰眼和主地图的坐标系统一致
                EagleEyeMapControl.SpatialReference = Map.SpatialReference;
                for (int i = Map.LayerCount - 1; i >= 0; i--)
                {
                    //使鹰眼视图与数据视图的图层上下顺序保持一致
                    ILayer pLayer = Map.get_Layer(i);
                    if (pLayer is IGroupLayer || pLayer is ICompositeLayer)
                    {
                        ICompositeLayer pCompositeLayer = (ICompositeLayer)pLayer;
                        for (int j = pCompositeLayer.Count - 1; j >= 0; j--)
                        {
                            ILayer        pSubLayer     = pCompositeLayer.get_Layer(j);
                            IFeatureLayer pFeatureLayer = pSubLayer as IFeatureLayer;
                            if (pFeatureLayer != null)
                            {
                                //由于鹰眼地图较小,所以过滤点图层不添加
                                if (pFeatureLayer.FeatureClass.ShapeType != esriGeometryType.esriGeometryPoint &&
                                    pFeatureLayer.FeatureClass.ShapeType != esriGeometryType.esriGeometryMultipoint)
                                {
                                    EagleEyeMapControl.AddLayer(pLayer);
                                }
                            }
                        }
                    }
                    else
                    {
                        IFeatureLayer pFeatureLayer = pLayer as IFeatureLayer;
                        if (pFeatureLayer != null)
                        {
                            if (pFeatureLayer.FeatureClass.ShapeType != esriGeometryType.esriGeometryPoint &&
                                pFeatureLayer.FeatureClass.ShapeType != esriGeometryType.esriGeometryMultipoint)
                            {
                                EagleEyeMapControl.AddLayer(pLayer);
                            }
                        }
                    }

                    //设置鹰眼地图全图显示
                    EagleEyeMapControl.Extent = Map.FullExtent;
                    pEnv = Map.Extent as IEnvelope;
                    DrawRectangle(pEnv);
                    EagleEyeMapControl.ActiveView.Refresh();
                }
            }
            catch (Exception e)
            {
                ShowError("鹰眼地图刷新失败\n" + e.Message);
            }
        }
Ejemplo n.º 2
0
 private void SynchronizedEagleEye()
 {
     if (EagleEyeMapControl.LayerCount > 0)
     {
         EagleEyeMapControl.ClearLayers();
     }
     //设置鹰眼和主地图的坐标系统一致
     EagleEyeMapControl.SpatialReference = mainMapControl.SpatialReference;
     for (int i = mainMapControl.LayerCount - 1; i >= 0; i--)
     {
         //设置鹰眼视图和数据视图的图层顺序上下保持一致
         ILayer pLayer = mainMapControl.get_Layer(i);
         if (pLayer is IGroupLayer || pLayer is ICompositeLayer)
         {
             ICompositeLayer pCompositeLayer = (ICompositeLayer)pLayer;
             for (int j = pCompositeLayer.Count - 1; j >= 0; j--)
             {
                 ILayer        pSubLayer     = pCompositeLayer.get_Layer(j);
                 IFeatureLayer pFeatureLayer = pSubLayer as IFeatureLayer;
                 if (pFeatureLayer != null)
                 {
                     //由于鹰眼地图较小,所以不添加点图层
                     if (pFeatureLayer.FeatureClass.ShapeType != esriGeometryType.esriGeometryPoint &&
                         pFeatureLayer.FeatureClass.ShapeType != esriGeometryType.esriGeometryMultipoint)
                     {
                         EagleEyeMapControl.AddLayer(pLayer);
                     }
                 }
             }
         }
         else
         {
             IFeatureLayer pFeatureLayer = pLayer as IFeatureLayer;
             if (pFeatureLayer != null)
             {
                 if (pFeatureLayer.FeatureClass.ShapeType != esriGeometryType.esriGeometryPoint &&
                     pFeatureLayer.FeatureClass.ShapeType != esriGeometryType.esriGeometryMultipoint)
                 {
                     EagleEyeMapControl.AddLayer(pLayer);
                 }
             }
         }
         //设置鹰眼地图的全局显示
         EagleEyeMapControl.Extent = mainMapControl.FullExtent;
         pEnv = mainMapControl.Extent as IEnvelope;
         DrawRectangle(pEnv);
         EagleEyeMapControl.ActiveView.Refresh();
     }
 }
Ejemplo n.º 3
0
        //主视图加载
        private void SynchronizeEagleEye()
        {
            if (EagleEyeMapControl.LayerCount > 0)
            {
                EagleEyeMapControl.ClearLayers();
            }
            //设置鹰眼与主地图的坐标一致
            EagleEyeMapControl.SpatialReference = axMapControl3.SpatialReference;
            //EagleEyeMapControl.Map=new MapClass();
            for (int i = axMapControl3.LayerCount - 1; i >= 0; i--)
            {
                //使鹰眼视图与数据视图的图层顺序一致
                ILayer pLayer = axMapControl3.get_Layer(i);
                if (pLayer is IGroupLayer || pLayer is ICompositeLayer)
                {
                    ICompositeLayer pCompositeLayer = (ICompositeLayer)pLayer;
                    for (int j = pCompositeLayer.Count - 1; j >= 0; j--)
                    {
                        ILayer        pSubLayer     = pCompositeLayer.get_Layer(j);
                        IFeatureLayer pFeatureLayer = pSubLayer as IFeatureLayer;
                        if (pFeatureLayer != null)
                        {
                            //过滤点图层
                            if (pFeatureLayer.FeatureClass.ShapeType != esriGeometryType.esriGeometryPoint && pFeatureLayer.FeatureClass.ShapeType != esriGeometryType.esriGeometryMultipoint)
                            {
                                EagleEyeMapControl.AddLayer(pFeatureLayer);
                            }
                        }
                    }
                }
                else
                {
                    IFeatureLayer pFeatureLayer = pLayer as IFeatureLayer;
                    if (pFeatureLayer != null)
                    {
                        //过滤点图层
                        if (pFeatureLayer.FeatureClass.ShapeType != esriGeometryType.esriGeometryPoint && pFeatureLayer.FeatureClass.ShapeType != esriGeometryType.esriGeometryMultipoint)
                        {
                            EagleEyeMapControl.AddLayer(pFeatureLayer);
                        }
                    }
                }
                EagleEyeMapControl.Extent = axMapControl3.FullExtent;
                pEnv = axMapControl3.Extent as IEnvelope;

                EagleEyeMapControl.ActiveView.Refresh();
            }
        }