基本上我想绘制一个填充的正方形并将其添加(并使用它)作为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);
答案 0 :(得分:2)
要绘制填充的方块,请按照以下步骤进行操作
用于绘图我使用以下示例:
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);