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); } }
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(); } }
//主视图加载 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(); } }