Click here to Skip to main content
15,885,767 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hello Experts
I need to draw an Google marker image via C# Graphics
for that i;ll need the exact coordinates of Google marker
how can i do that Please help .
My Current Code is .


C#
private void Shape8(PaintEventArgs e)
        {
            e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;

            int startMarker = 0;
            int MarkerDiameter = 30;
            int EllipseDiameter = 15;

            const int StartX = 150;
            const int StartY = 350;

            int X = StartX;
            int Y = StartY;

            GraphicsPath path = new GraphicsPath();
            Rectangle ellipse = new Rectangle(X, Y, EllipseDiameter, EllipseDiameter);
            path.AddEllipse(ellipse);
            path.CloseFigure();

            X = X + (EllipseDiameter / 2) - (MarkerDiameter / 2);
            Y = Y - (EllipseDiameter * 2) - (MarkerDiameter / 2);

            startMarker = StartY - 10 - (Convert.ToInt32(MarkerDiameter * 1.5));//Space Between marker and circle.
            AddMarker8(ref path, X, startMarker, StartX, StartY, EllipseDiameter, MarkerDiameter, "Concept1");

            e.Graphics.FillPath(Brushes.Pink, path);
            e.Graphics.DrawPath(Pens.Black, path);
            e.Graphics.FillEllipse(Brushes.White, ellipse);

            path.CloseAllFigures();

        }

 private void AddMarker8(ref GraphicsPath path, int X, int Y, int StartX, int StartY, int EllipseDiameter, int MarkerDiameter, string conceptName)
        {
            float startAngle = 180.0F;
            float sweepAngle = 180.0F;
            int fontStyle = (int)FontStyle.Regular;

            path.AddString(conceptName, new FontFamily("Arial"), fontStyle, 15, new Point(X + (MarkerDiameter / 2), Y - 15), lblFormat);
            Rectangle rect = new Rectangle(X, Y, MarkerDiameter, MarkerDiameter);
            path.AddArc(rect, startAngle, sweepAngle);

            Point lastpoint = new Point(X + (MarkerDiameter / 2), (Y + (MarkerDiameter * 2)) - (MarkerDiameter / 2));
            path.AddCurve(new Point[] {
                new Point(X+(MarkerDiameter), Y + (MarkerDiameter / 2)), //a
                new Point((X +MarkerDiameter)-(MarkerDiameter/4) ,(Y +(MarkerDiameter ))) ,//A.5
                lastpoint ,//c
                new Point(X +(MarkerDiameter / 4) ,(Y +(MarkerDiameter ))) ,//B.5
                new Point(X, Y + (MarkerDiameter / 2))//b
                    }, 0.5f);

            path.CloseFigure();
        }
Posted
Updated 25-Jun-13 3:45am
v2

1 solution

I don't know C#, but for javascript ,it is easy to call google map api to replace marker with your own,why you do function what google already have?
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900