Exemplo n.º 1
0
        private void mapControl_MouseDownEvent(object sender, AxMapObjects2._DMapEvents_MouseDownEvent e)
        {
            MapObjects2.Point oMousePosition = mapControl.ToMapPoint(e.x, e.y);
            MapUtil.MapOperation oMapOper = new GPSTrackingMonitor.MapUtil.MapOperation();

            switch (GlobeVariables.CurrentOperation)
            {
                case GPSTrackingMonitor.MapUtil.MapOperationType.ZoomIn:
                    oMapOper.ZoomInMap(mapControl.TrackRectangle(),ref mapControl);
                    break;
                case GPSTrackingMonitor.MapUtil.MapOperationType.ZoomOut:
                    oMapOper.ZoomOutMap(mapControl.TrackRectangle(), ref mapControl);
                    break;
                case GPSTrackingMonitor.MapUtil.MapOperationType.Pan:
                    mapControl.Pan();
                    break;
                case GPSTrackingMonitor.MapUtil.MapOperationType.Measure:
                    this._measureLine = mapControl.TrackLine();
                    this.labMeasure.Text = string.Format("长度 : {0} 米", oMapOper.ComputeDistance(this._measureLine).ToString());
                    break;
                case GPSTrackingMonitor.MapUtil.MapOperationType.Identify:                  
                    MapUtil.FeatureInformations oFeatureInfos = oMapOper.GetIdentifyFeatureInfos(oMousePosition, this.mapControl,GlobeVariables.MapInfosCollection);
                    this._frmIdentify.UpdateFeatureInfos(oFeatureInfos, MousePosition);
                    break;
                case GPSTrackingMonitor.MapUtil.MapOperationType.FetchPoint:
                    this.OnPointFetched(oMousePosition);
                    break;
                default:
                    break;
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// mapMain mouse down event
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void mapMain_MouseDownEvent(object sender, AxMapObjects2._DMapEvents_MouseDownEvent e)
        {
            switch (tBarIndex)
            {
            case 1:
            {
                MapObjects2.Rectangle zoomInRect = new MapObjects2.RectangleClass();
                MapObjects2.Point     zoomInPt   = new MapObjects2.PointClass();
                zoomInRect = this.mapMain.TrackRectangle();
                if (zoomInRect.Height > 0 && zoomInRect.Width > 0)
                {
                    mapMain.Extent = zoomInRect;
                    mapMain.Extent = mapMain.Extent;
                }
                else
                {
                    zoomInPt = mapMain.ToMapPoint(e.x, e.y);
                    mapMain.CenterAt(zoomInPt.X, zoomInPt.Y);
                    zoomRect = mapMain.Extent;
                    sr       = 0.5;
                    zoomRect.ScaleRectangle(sr);
                    mapMain.Extent = zoomRect;
                    mapMain.Extent = mapMain.Extent;
                }

                ShowLayers();
                mapEye.Extent = mapEye.Extent;
                iScale        = System.Convert.ToInt64(mapLayer.CalcScale(this.mapMain));
                if (iScale <= MAX_SCALE)
                {
                    MessageBox.Show("选择图形比例过小,请重新选择!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    zoomFull();
                    return;
                }
                break;
            }

            case 2:
            {
                MapObjects2.Rectangle zoomOutRect = new MapObjects2.RectangleClass();
                MapObjects2.Point     zoomOutPt   = new MapObjects2.PointClass();
                zoomOutRect = mapMain.TrackRectangle();
                if (zoomOutRect.Height > 0 && zoomOutRect.Width > 0)
                {
                    sr = mapMain.Extent.Width / zoomOutRect.Width;
                    mapMain.CenterAt(zoomOutRect.Center.X, zoomOutRect.Center.Y);
                }
                else
                {
                    zoomOutPt = mapMain.ToMapPoint(e.x, e.y);
                    mapMain.CenterAt(zoomOutPt.X, zoomOutPt.Y);
                    sr = 2;
                }
                zoomRect = mapMain.Extent;
                zoomRect.ScaleRectangle(sr);
                mapMain.Extent = zoomRect;
                mapMain.Extent = mapMain.Extent;

                ShowLayers();
                mapEye.Extent = mapEye.Extent;
                break;
            }

            case 3:
            {
                mapMain.Pan();
                mapEye.Extent = mapEye.Extent;
                break;
            }

            default:
            {
                if (radioButton1.Checked == false)
                {
                    MapObjects2.Point point;
                    point = mapMain.ToMapPoint(e.x, e.y);
                    for (int i = 0; i < s_Info.Length; i++)
                    {
                        if (point.X > System.Convert.ToDouble(
                                s_Info[i].s_East) - 5 &&
                            point.X <System.Convert.ToDouble(s_Info[i].s_East) + 5 &&
                                     point.Y> System.Convert.ToDouble(s_Info[i].s_West) - 5 &&
                            point.Y < System.Convert.ToDouble(s_Info[i].s_West) + 5
                            )
                        {
                            Point position = new Point();
                            GisMapSName = s_Info[i].s_Name;
                            GisMapSNo   = s_Info[i].s_No;
                            //								position.X=e.x+POSITIONX;
                            //								position.Y=e.y+POSITIONY;
                            //								GisMapMenu.Show(this,position);
                            if (GisMapSNo == "2")
                            {
                                frmDataNowD f = new frmDataNowD(GisMapSName);
                                f.ShowDialog();
                            }
                            else
                            {
                                frmDataNow f = new frmDataNow(GisMapSName);
                                f.ShowDialog();
                            }
                        }
                    }
                }
                break;
            }
            }
        }