I have found a bug inside the GMaps.NET control. If you add multiple routes to an overlay, the routes are always shown with the last color given.
Example:
Route1: Color.Green
Route2: Color.Blue
Route3: Color.Yellow
Result:
All routes are yellow.
```
foreach (GefahreneTour gefahreneTour in gefahreneTouren)
{
List<PointLatLng> points = ShowLeerungen(gefahreneTour.LeerungenCollection);
//Route
GMapRoute oGMapRoute = new GMapRoute(GetTrackingRoute(gefahreneTour.TrackingCollection), string.Format("My_Route_{0}", routesOverlay.Routes.Count));
oGMapRoute.Stroke.Width = 4;
oGMapRoute.Stroke.StartCap = LineCap.Flat;
oGMapRoute.Stroke.EndCap = LineCap.ArrowAnchor;
// Farbe berechnen, mit der die Route angezeigt wird
int nMod = routesOverlay.Routes.Count % this.dColors.Count;
if (this.dColors.ContainsKey(nMod))
oGMapRoute.Stroke.Color = this.dColors[nMod];
else
oGMapRoute.Stroke.Color = this.dColors[0];
//oGMapRoute.Stroke.Color = Color.Green;
// Route dem Overlay hinzufügen
routesOverlay.Routes.Add(oGMapRoute);
// Position und Zoom berechnen
gmap.ZoomAndCenterRoute(oGMapRoute);
// Label zur Anzeige der Tour
Label oLabel = new Label();
this.gmap.Controls.Add(oLabel);
oLabel.Text = string.Format("Tour: {0}", gefahreneTour.TourBezeichnung);
oLabel.Parent = this.gmap;
oLabel.ForeColor = oGMapRoute.Stroke.Color;
oLabel.BackColor = Color.Transparent;
oLabel.Location = new Point(3, (routesOverlay.Routes.Count * 22) + 5);
oLabel.Font = new Font(oLabel.Font.FontFamily, 16, FontStyle.Bold);
}
```
Comments: Works! THX a lot! Code: __Pen myStroke = new Pen(Color.Gold, 1);__ GMapRoute route5= new GMapRoute(routePoints5, "route5"); __route5.Stroke = myStroke;__ //route5.Stroke.Color = Color.Gold; //route5.Stroke.Width = 1; routes5.Routes.Add(route5); __Pen myStroke1 = new Pen(Color.Red, 2);__ GMapRoute route6= new GMapRoute(routePoints6, "route6"); __route6.Stroke = myStroke1;__ //route6.Stroke.Color = Color.Red; //route6.Stroke.Width = 2; routes6.Routes.Add(route6);
Example:
Route1: Color.Green
Route2: Color.Blue
Route3: Color.Yellow
Result:
All routes are yellow.
```
foreach (GefahreneTour gefahreneTour in gefahreneTouren)
{
List<PointLatLng> points = ShowLeerungen(gefahreneTour.LeerungenCollection);
//Route
GMapRoute oGMapRoute = new GMapRoute(GetTrackingRoute(gefahreneTour.TrackingCollection), string.Format("My_Route_{0}", routesOverlay.Routes.Count));
oGMapRoute.Stroke.Width = 4;
oGMapRoute.Stroke.StartCap = LineCap.Flat;
oGMapRoute.Stroke.EndCap = LineCap.ArrowAnchor;
// Farbe berechnen, mit der die Route angezeigt wird
int nMod = routesOverlay.Routes.Count % this.dColors.Count;
if (this.dColors.ContainsKey(nMod))
oGMapRoute.Stroke.Color = this.dColors[nMod];
else
oGMapRoute.Stroke.Color = this.dColors[0];
//oGMapRoute.Stroke.Color = Color.Green;
// Route dem Overlay hinzufügen
routesOverlay.Routes.Add(oGMapRoute);
// Position und Zoom berechnen
gmap.ZoomAndCenterRoute(oGMapRoute);
// Label zur Anzeige der Tour
Label oLabel = new Label();
this.gmap.Controls.Add(oLabel);
oLabel.Text = string.Format("Tour: {0}", gefahreneTour.TourBezeichnung);
oLabel.Parent = this.gmap;
oLabel.ForeColor = oGMapRoute.Stroke.Color;
oLabel.BackColor = Color.Transparent;
oLabel.Location = new Point(3, (routesOverlay.Routes.Count * 22) + 5);
oLabel.Font = new Font(oLabel.Font.FontFamily, 16, FontStyle.Bold);
}
```
Comments: Works! THX a lot! Code: __Pen myStroke = new Pen(Color.Gold, 1);__ GMapRoute route5= new GMapRoute(routePoints5, "route5"); __route5.Stroke = myStroke;__ //route5.Stroke.Color = Color.Gold; //route5.Stroke.Width = 1; routes5.Routes.Add(route5); __Pen myStroke1 = new Pen(Color.Red, 2);__ GMapRoute route6= new GMapRoute(routePoints6, "route6"); __route6.Stroke = myStroke1;__ //route6.Stroke.Color = Color.Red; //route6.Stroke.Width = 2; routes6.Routes.Add(route6);