Exemple #1
0
 private void EagleEyeMapControl_OnMouseDown(object sender, IMapControlEvents2_OnMouseDownEvent e)
 {
     if (EagleEyeMapControl.Map.LayerCount > 0)
     {
         //按下鼠标左键移动矩形框
         if (e.button == 1)
         {
             //如果指针落在矩形框中,标记可移动
             if (e.mapX > pEnv.XMin && e.mapY > pEnv.YMin &&
                 e.mapX < pEnv.XMax && e.mapY < pEnv.YMax)
             {
                 bCanDrag = true;
             }
             pMoveRectPoint = new PointClass();
             pMoveRectPoint.PutCoords(e.mapX, e.mapY);//记录点击的第一个坐标
         }
         //按下鼠标右键绘制矩形框
         else if (e.button == 2)
         {
             IEnvelope pEnvelope = EagleEyeMapControl.TrackRectangle();
             IPoint    pTemPoint = new PointClass();
             pTemPoint.PutCoords(pEnvelope.XMin + pEnvelope.Width / 2, pEnvelope.YMin + pEnvelope.Height / 2);
             mainMapControl.Extent = pEnvelope;
             //矩形框的高宽和数据视图的高度不一定成正比,这里要做一个中心调整
             mainMapControl.CenterAt(pTemPoint);
         }
     }
 }
Exemple #2
0
        //鼠标按下
        private void EagleEyeMapControl_OnMouseDown(object sender, IMapControlEvents2_OnMouseDownEvent e)
        {
            try
            {
                if (EagleEyeMapControl.Map.LayerCount > 0)
                {
                    //按下鼠标左键移动矩形框
                    if (e.button == 1)
                    {
                        //如果指针落在鹰眼的矩形框中,标记可移动
                        if (e.mapX > pEnv.XMin && e.mapY > pEnv.YMin && e.mapX < pEnv.XMax && e.mapY < pEnv.YMax)
                        {
                            bCanDrag = true;
                        }
                        pMoveRectPoint = new PointClass();
                        pMoveRectPoint.PutCoords(e.mapX, e.mapY);  //记录点击的第一个点的坐标
                    }
                    //按下鼠标右键绘制矩形框
                    else if (e.button == 2)
                    {
                        IEnvelope pEnvelope = EagleEyeMapControl.TrackRectangle();

                        IPoint pTempPoint = new PointClass();
                        pTempPoint.PutCoords(pEnvelope.XMin + pEnvelope.Width / 2, pEnvelope.YMin + pEnvelope.Height / 2);
                        Map.Extent = pEnvelope;
                        //矩形框的高宽和数据试图的高宽不一定成正比,这里做一个中心调整
                        Map.CenterAt(pTempPoint);
                    }
                }
            }
            catch (Exception exception)
            {
                Console.WriteLine(exception);
            }
        }
Exemple #3
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);
            }
        }
Exemple #4
0
        /// <summary>
        /// 鹰眼地图控制器按下事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void EagleEyeMapControl_OnMouseDown(object sender, IMapControlEvents2_OnMouseDownEvent e)
        {
            //if (EagleEyeMapControl.Map.LayerCount > 0)
            //{
            //    // 按下鼠标左键,移动矩形框
            //    if (e.button == 1)
            //    {
            //        if (e.mapX > pEnv.XMin && e.mapY > pEnv.YMin && e.mapX < pEnv.XMax && e.mapY < pEnv.YMax)
            //        {
            //            CanDrag = true;
            //        }
            //        MoveRectPoint = new PointClass();
            //        // 记录点击的第一个点的坐标
            //        MoveRectPoint.PutCoords(e.mapX, e.mapY);
            //    }
            //    //按下鼠标右键绘制矩形框
            //    else if (e.button == 2)
            //    {
            //        IEnvelope pEnvelope = EagleEyeMapControl.TrackRectangle();

            //        IPoint pTempPoint = new PointClass();
            //        pTempPoint.PutCoords(pEnvelope.XMin + pEnvelope.Width / 2, pEnvelope.YMin + pEnvelope.Height / 2);
            //        MainMapControl.Extent = pEnvelope;
            //        //矩形框的高宽和数据试图的高宽不一定成正比,这里做一个中心调整
            //        MainMapControl.CenterAt(pTempPoint);
            //    }
            //}
            if (EagleEyeMapControl.Map.LayerCount > 0)
            {
                //按下鼠标左键移动矩形框
                if (e.button == 1)
                {
                    //如果指针落在鹰眼的矩形框中,标记可移动
                    if (e.mapX > pEnv.XMin && e.mapY > pEnv.YMin && e.mapX < pEnv.XMax && e.mapY < pEnv.YMax)
                    {
                        CanDrag = true;
                    }
                    MoveRectPoint = new PointClass();
                    MoveRectPoint.PutCoords(e.mapX, e.mapY);  //记录点击的第一个点的坐标
                }
                //按下鼠标右键绘制矩形框
                else if (e.button == 2)
                {
                    IEnvelope pEnvelope = EagleEyeMapControl.TrackRectangle();

                    IPoint pTempPoint = new PointClass();
                    pTempPoint.PutCoords(pEnvelope.XMin + pEnvelope.Width / 2, pEnvelope.YMin + pEnvelope.Height / 2);
                    MainMapControl.Extent = pEnvelope;
                    //矩形框的高宽和数据试图的高宽不一定成正比,这里做一个中心调整
                    MainMapControl.CenterAt(pTempPoint);
                }
            }
        }
Exemple #5
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();
     }
 }
Exemple #6
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();
            }
        }
Exemple #7
0
 private void EagleEyeMapControl_OnMouseUp(object sender, AxESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseUpEvent e)
 {
     if (EagleEyeMapControl.Map.LayerCount > 0)
     {
         if (e.button == 1)
         {
             if (e.mapX > pEnv.XMin && e.mapY > pEnv.YMin && e.mapX < pEnv.XMax && e.mapY < pEnv.YMax)
             {
                 bCanDrag = true;
             }
             pMoveRectPoint = new PointClass();
             pMoveRectPoint.PutCoords(e.mapX, e.mapY);
         }
         else if (e.button == 2)
         {
             IEnvelope pEnvelope = EagleEyeMapControl.TrackRectangle();
             IPoint    pTemPoint = new PointClass();
             pTemPoint.PutCoords(pEnvelope.XMin + pEnvelope.Width / 2, pEnvelope.YMin + pEnvelope.Height / 2);
             axMapControl3.Extent = pEnvelope;
             //对矩形做一个中心调整
             axMapControl3.CenterAt(pTemPoint);
         }
     }
 }