3

基本上我想画一个填充的正方形并将它添加(并使用它)作为 Gmap 的标记。我尝试绘制一个正方形并将其用作位图,但它要求我提供 xy 坐标,我不知道要为此设置什么值,因为标记已经使用纬度/经度。我正在尝试这个,但是正方形的位置不对。我想正方形出现在指定的纬度/经度上。

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);
4

3 回答 3

3

要绘制一个实心正方形,请按照以下步骤操作:

  1. 右键单击项目设置。
  2. 转到资源 > 添加资源 > 新图像。
  3. 双击新创建的图像。
  4. 打开一个空白页。画出你喜欢的任何东西并保存。

对于绘图,我使用了以下示例:

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

希望这对你有用。

于 2017-05-04T10:54:40.600 回答
0

使用GMap.NET 教程 - 地图、标记和多边形

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

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

希望这可以帮助。

于 2015-05-11T20:17:15.757 回答
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);
于 2019-08-14T19:21:49.060 回答