2016-06-20 14 views
1

Ja, ich bin nicht der erste, der fragt, aber ich habe keine Antwort gefunden (vielleicht, weil mein Englisch ist schlecht). Wie zeichnet man eine Polylinie auf einer Karte? Keine Route (Richtung), sondern nur eine Polylinie, wie in JS Google Maps API mit der Funktion Polyline. Ich kann nicht verstehen.Zeichnen Sie eine Polylinie auf der Karte mit GMap.net

Danke trotzdem.

Antwort

1

Viel Spaß beim Lesen dieses Tutorials:

http://www.independent-software.com/gmap-net-tutorial-maps-markers-and-polygons/

Diese Ihnen den Einstieg sollten:

GMapOverlay polyOverlay = new GMapOverlay("polygons"); 
IList<PointLatLng> points = new List<PointLatLng>(); 
points.Add(new PointLatLng(-25.969562,32.585789)); 
points.Add(new PointLatLng(-25.966205,32.588171)); 
GMapPolygon polygon = new GMapPolygon(points, "mypolygon"); 
polygon.Fill = new SolidBrush(Color.FromArgb(50, Color.Red)); 
polygon.Stroke = new Pen(Color.Red, 1); 
polyOverlay.Polygons.Add(polygon); 
gmap.Overlays.Add(polyOverlay); 
+0

Ich brauche eine Polylinie, weder Marker noch Polygon –

+0

@ValerikPunk einfach die Punkte ändern, um zwei sind statt vier? – fuzz

+0

Hm, aber gibt es irgendeine spezielle Funktion für die Polylinie selbst, oder nicht? –

1

Obwohl etwas übertrieben, können Sie die GMap Routen Fähigkeit mit einfachen Linien zu zeichnen. Dies hat auch den großen Vorteil, dass Sie bei Bedarf die Länge dieser Linie (in km) bestimmen können. Hier ist, wie Sie eine einzige Zeile ziehen würde:

GMapRoute line_layer; 
GMapOverlay line_overlay 

line_layer = new GMapRoute("single_line"); 
line_layer.Stroke = new Pen(Brushes.Black, 2); //width and color of line 

line_overlay.Routes.Add(line_layer); 
gMapControl1.Overlays.Add(line_overlay) 

//Once the layer is created, simply add the two points you want 

line_layer.Points.Add(new PointLatLng(lat, lon)); 
line_layer.Points.Add(new PointLatLng(lat2, lon2)); 

//Note that if you are using the MouseEventArgs you need to use local coordinates and convert them: 
line_layer.Points.Add(gMapControl1.FromLocalToLatLng(e.X, e.Y)); 

//To force the draw, you need to update the route 
gMapControl1.UpdateRouteLocalPosition(line_layer); 

//you can even add markers at the end of the lines by adding markers to the same layer: 

GMapMarker marker_ = new GMarkerCross(p); 
line_overlay.Markers.Add(marker_); 
Verwandte Themen