2017-03-17 8 views
0

Ich habe gerade mit GMAP.Net begonnen und ich habe die Einrichtung einen benutzerdefinierten Marker so:GMap.Net Standort auf Marker zentralisiert über Punkt nicht über

marker = new GMarkerGoogle(new PointLatLng(Convert.ToDouble(latlon[0]), Convert.ToDouble(latlon[1])), new Bitmap(Iconpath)); 

wo IconPath Punkte auf ein 42 * 38 Pixel-Bild Geben Sie PNG ein.

jedoch erscheint das Bild zentral und unmittelbar über dem Punkt, der oben gesetzt wurde. Was ich möchte, ist zu wissen, wie man es so in der Mitte des Bildes über dem Ort einstellt.

Irgendeine Idee, wie man das macht?

Dies ist in einer winforms.Net 4.0-Anwendung.

Antwort

0

ich fand, war es eine einfache Möglichkeit, dies so zu tun:

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

hoffen, dass es jemand anderes hilft!

0

Die GoogleMarker-Klasse scheint für Push-Pin-Bilder entwickelt zu werden, bei denen die Pinspitze direkt über dem Point of Interest liegen sollte. Am besten erben Sie die Markerklasse und erstellen Ihre eigene Klasse, in der Sie die Bildplatzierung steuern können. Wie folgt aus:

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

Jetzt rufen Sie einfach Ihre Klasse:

marker = new customImageMarker(new PointLatLng(Convert.ToDouble(latlon[0]), Convert.ToDouble(latlon[0])), new Bitmap(Iconpath)); 

Sie können die Platzierung des Symbols steuern, indem die Offset-Variable eingestellt wird.

+0

Danke Ich werde es am Sonntag geben, wenn ich zurück bin. Ist Google ähnlich wie GMap.Net? – Adrian

+0

Hallo, ich habe versucht, aber ich bekomme den folgenden Fehler "Kann nicht implizit Typ CustomImageMarker zu GMap.Net.WindowsForms.Markers.GMarkerGoogle" – Adrian

+0

konvertieren Sie müssen zunächst die Markierung als ein CustomImageMarker definieren und dann können Sie es zum Layer hinzufügen als das würdest du normalerweise tun. Egal, es sieht so aus, als hättest du einen viel einfacheren Weg gefunden! –

Verwandte Themen