public override void OnMouseDown(int x, int y, System.Windows.Forms.MouseEventArgs e) { RgPoint P1 = mScreenDisplay.DisplayTransformation.ToUnit(new System.Drawing.PointF(x, y)); Carto.FetureLayer featurelyr = mMapCtrl.Map.CurrentLayer as Carto.FetureLayer; if (featurelyr != null && featurelyr.ShapeType == RgEnumShapeType.RgPoint) { featurelyr.mGeometries.Add(P1); } mMapCtrl.Refresh(); }
public PointF ToScreen(RgPoint pt) { PointF transformedPoint = new PointF((float)pt.X, (float)pt.Y); transformedPoint.Y = ScreenHeight() - transformedPoint.Y; //将Unit坐标系转换为屏幕坐标系,Y轴反向,此时Y坐标为屏幕坐标系坐标 transformedPoint.Y *= m_screenResolution * Zoom; //相对于屏幕原点放大 transformedPoint.X *= m_screenResolution * Zoom; transformedPoint.X += m_panOffset.X + m_dragOffset.X; transformedPoint.Y += m_panOffset.Y + m_dragOffset.Y; return(transformedPoint); }