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; } }
/// <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; } } }