2016-01-13 1 views
0

Je me débrouille avec GMap.NET. J'ai un contrôle de carte gmap.net sur mon formulaire. Il y a un x rouge (ou un signe plus, si vous voulez) au milieu de la carte. J'ai ajouté une méthode qui mettra un marqueur partout où je clique sur la carte. Cependant, le client préfère avoir un bouton "punaise" sur le formulaire que l'utilisateur va cliquer, et le marqueur sera ajouté là où se trouve le X rouge (qui est toujours le centre du contrôle de la carte, semble-t-il). La carte est glissable et zoomable, de sorte que le marqueur sera ajouté partout où le x rouge est à ce moment-là.Ajouter un marqueur de carte au centre gmap?

enter image description here

En ce moment, lorsque mon programme ajoute un marqueur, il se traduit par la latitude et lng de la méthode FromLocalToLatLng gmap:

private void gmap_MouseClick(object sender, MouseEventArgs e) 
    { 
     if (e.Button != MouseButtons.Left) return; 

     var lat = gmap.FromLocalToLatLng(e.X, e.Y).Lat; 
     var lng = gmap.FromLocalToLatLng(e.X, e.Y).Lng; 

     var markerOverlay = new GMapOverlay("markers"); 

     var marker = new GMarkerGoogle(new 
      PointLatLng(lat, lng), 
      GMarkerGoogleType.green_pushpin) 
     { 
      ToolTipText = "Kevin Jennings", 
      ToolTipMode = MarkerTooltipMode.OnMouseOver 
     }; 

     gmap.Overlays.Add(markerOverlay); 
     markerOverlay.Markers.Add(marker); 
    } 

Dans ce cas, cependant, je me demande s'il y a un moyen d'ajouter le marqueur au centre de la carte?

Répondre

0

Je l'ai compris. Vous pouvez obtenir le centre de la carte en utilisant le code suivant:

var center = gmap.Position; 

Une fois que j'avais le centre, tout ce que je devais faire était d'ajouter un marqueur à cette position, comme ceci:

var marker2 = new GMarkerGoogle(new 
      PointLatLng(center.Lat, center.Lng), 
      GMarkerGoogleType.green_pushpin) 
     { 
      ToolTipText = "Kevin Jennings", 
      ToolTipMode = MarkerTooltipMode.OnMouseOver 
     }; 
0

vous devez l'utiliser

map.Zoom = 10;

map.Zoom = 9;

et vos marqueurs se positionner sur la bonne direction .. code complet

 var lat = mapa.FromLocalToLatLng(e.X, e.Y).Lat; 
     var lng = mapa.FromLocalToLatLng(e.X, e.Y).Lng; 
     MessageBox.Show(lat + " long :" + lng); 
     var markerOverlay = new GMapOverlay("markers"); 

     var marker = new GMarkerGoogle(new 
      PointLatLng(lat, lng), 
      GMarkerGoogleType.green_pushpin) 
     { 
      ToolTipText = "Ubicacion depto", 
      ToolTipMode = MarkerTooltipMode.OnMouseOver 
     }; 


     markerOverlay.Markers.Add(marker); 
     map.Overlays.Add(markerOverlay); 
     map.Zoom = 10; 
     map.Zoom = 9; 
    }