erstellen Ich suche nach einer Funktion, die einen Kreis auf der Karte erstellen kann. Ich benutze Gmap Bibliothek in VB.Net. Existieren einige Funktionen, die einen Kreis um einen Punkt auf der Karte erzeugen können, zum Beispiel mit einem Radius von 500 Metern?Wie man Circe mit GMap in VB.Net
fand ich einen Code, aber es ist nicht das, was ich genau bin auf der Suche nach:
Imports System.Drawing
Imports System.Drawing.Drawing2D
Imports GMap.NET
Imports GMap.NET.WindowsForms
Namespace Map
Public Class GMapMarkerCircle
Inherits GMapMarker
Private m_Radius As Integer
'In Meters
Public m_OutlinePen As Pen
Public m_FillBrush As Brush
Public m_Fill As Boolean
Public Sub New(p As PointLatLng, Radius As Integer, OutlinePen As Pen, FillBrush As Brush, Fill As Boolean)
MyBase.New(p)
m_OutlinePen = OutlinePen
m_FillBrush = FillBrush
m_Radius = Radius
m_Fill = Fill
End Sub
Public Overrides Sub OnRender(g As Graphics)
g.SmoothingMode = SmoothingMode.AntiAlias
Dim R As Integer = CInt((m_Radius)/Overlay.Control.MapProvider.Projection.GetGroundResolution(Overlay.Control.Zoom, Position.Lat)) * 2
If m_Fill = True Then
g.FillEllipse(m_FillBrush, New System.Drawing.Rectangle(LocalPosition.X - R \ 2, LocalPosition.Y - R \ 2, R, R))
End If
g.DrawEllipse(m_OutlinePen, New System.Drawing.Rectangle(LocalPosition.X - R \ 2, LocalPosition.Y - R \ 2, R, R))
End Sub
End Class
End Namespace
Und in App:
Dim CircleMarker As New GMapMarkerCircle(New GMap.NET.PointLatLng(ZemSirka, ZemDlzka), 660, New Pen(Color.Azure, 1), Brushes.LightSeaGreen, True)
Dim Overlay As New GMapOverlay("Circle")
Overlay.Markers.Add(CircleMarker)
GMapControl1.Overlays.Add(Overlay)
Aber als ich heran in der Karte Kreis/out verschwindet. Ich habe eine Anfängerfrage: Gibt es eine Möglichkeit, Pinsel halbtransparent zu machen?
Bürsten halbtransparent, gerade Funktion in der Klasse ändern 'FillBrush Als Brush' zu' FillBrush Als SolidBrush‘und in App-Code von' Brushes.LightSeaGreen' zu 'New SolidBrush (Color.FromArgb (50, Color.BlueViolet)) ' – Oliwer11