需要通过C#Graphics绘制Google标记图像 [英] need to draw an Google marker image via C# Graphics

查看:88
本文介绍了需要通过C#Graphics绘制Google标记图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Hello Experts

我需要通过C#Graphics

为我绘制一个Google标记图像;我需要Google标记的确切坐标

我该怎么办请帮助。

我目前的代码是。





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 .


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();
        }

推荐答案

我不知道C#,但对于javascript,很容易调用google map api来替换你自己的标记,你为什么谷歌已经有功能?
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?


这篇关于需要通过C#Graphics绘制Google标记图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆