我刚刚开始使用GMAP.Net而我正在设置自定义标记:
marker = new GMarkerGoogle(new PointLatLng(Convert.ToDouble(latlon[0]), Convert.ToDouble(latlon[1])), new Bitmap(Iconpath));
其中Iconpath指向PNG类型的42 * 38像素图像。
然而,图像显示在中央并且紧接在由上面设定的点之上。我想知道的是如何设置它以使图像的中心位于该位置上。知道怎么做吗?
这是在winforms .Net 4.0应用程序中。
答案 0 :(得分:0)
GoogleMarker类似乎是专为推针图像而设计的,您可能希望针尖直接位于感兴趣点之上。您最好的选择是继承标记类并创建自己的类,您可以在其中控制图像放置。像这样:
class customImageMarker: GMapMarker
{
Bitmap Bitmap;
public customImageMarker(PointLatLng p, Bitmap Bitmap)
: base(p)
{
this.Bitmap = Bitmap;
Size = new System.Drawing.Size(Bitmap.Width, Bitmap.Height);
Offset = new Point(-Size.Width / 2, -Size.Height / 2);
}
public override void OnRender(Graphics g)
{
g.DrawImage(Bitmap, LocalPosition.X - Offset.X, LocalPosition.Y - Offset.Y, Size.Width, Size.Height);
}
}
现在打电话给你的班级:
marker = new customImageMarker(new PointLatLng(Convert.ToDouble(latlon[0]), Convert.ToDouble(latlon[0])), new Bitmap(Iconpath));
您可以通过调整偏移变量来控制图标的位置。
答案 1 :(得分:0)
我发现有一种简单的方法可以做到这一点:
Bitmap imgMarker = new Bitmap(Iconpath);
marker = new GMarkerGoogle(new PointLatLng(Convert.ToDouble(latlon[0]), Convert.ToDouble(latlon[1])), imgMarker);
marker.Offset = new Point(imgMarker.Width/2, imgMarker.Height / 2);
希望它可以帮助别人!