将自定义标记(方形)添加到Gmap

时间:2015-05-11 14:07:58

标签: c# gmap.net

基本上我想绘制一个填充的正方形并将其添加(并使用它)作为Gmap的标记。我尝试绘制一个正方形并将其用作位图,但它要求我输入x y坐标并且我不知道要为此添加什么值,因为标记已经使用了lat / long。我正在尝试这个但广场的位置不正确。我希望方形显示在指定的纬度/经度上。

Bitmap flag = new Bitmap(50, 50);
gmap.MapProvider = GMap.NET.MapProviders.BingHybridMapProvider.Instance;
GMap.NET.GMaps.Instance.Mode = GMap.NET.AccessMode.ServerOnly;
Graphics fg = Graphics.FromImage(flag);
fg.FillRectangle(Brushes.Red, 100, 100, 50, 50);
GMapOverlay markerOverlay = new GMapOverlay(NametextBox.Text);
GMarkerGoogle marker = new GMarkerGoogle(new PointLatLng(-25.966688, 32.580528),flag);
markerOverlay.Markers.Add(marker);
gmap.Overlays.Add(markerOverlay);

3 个答案:

答案 0 :(得分:2)

要绘制填充的方块,请按照以下步骤进行操作

  1. 右键单击项目设置
  2. 转到资源>添加资源>新图片
  3. 双击新创建的图像
  4. 空白页打开画出你喜欢的东西并保存。
  5. 用于绘图我使用以下示例:

    GMapMarker marker = new GMarkerGoogle(new PointLatLng(-25.966688, 32.580528), new Bitmap(Properties.Resources.image8));
    gmap.Overlays.Add(markers);   // overlay added
    markers.Markers.Add(marker);
    

    希望这对你有用

答案 1 :(得分:0)

使用GMap.NET Tutorial – Maps, markers and polygons

他们为自定义标记提供的代码及其对叠加层的分配如下:

GMapOverlay markersOverlay = new GMapOverlay("markers");
GMarkerGoogle marker = new GMarkerGoogle(new PointLatLng(-25.966688, 32.580528), GMarkerGoogleType.green);
markersOverlay.Markers.Add(marker);
gmap.Overlays.Add(markersOverlay);

希望这有帮助。

答案 2 :(得分:0)

据我所知,您的问题不是位图本身的创建,而是标志不会出现在正确的位置。为了使其显示在正确的位置,您必须修改Offset对象的Marker属性。

Bitmap flag = new Bitmap(50, 50);
gmap.MapProvider = GMap.NET.MapProviders.BingHybridMapProvider.Instance;
GMap.NET.GMaps.Instance.Mode = GMap.NET.AccessMode.ServerOnly;
Graphics fg = Graphics.FromImage(flag);
fg.FillRectangle(Brushes.Red, 100, 100, 50, 50);
GMapOverlay markerOverlay = new GMapOverlay(NametextBox.Text);
GMarkerGoogle marker = new GMarkerGoogle(new PointLatLng(-25.966688, 32.580528),flag);
marker.Offset = new Point(-flag.Width/2, -flag.Height/2);  // Set point to middle of bitmap
markerOverlay.Markers.Add(marker);
gmap.Overlays.Add(markerOverlay);