private KmlMultipleFileExporterProperties GetPropertiesFromControls() { var p = new KmlMultipleFileExporterProperties(); // include routes p.IncludeRoutes = includeRoutes.Checked; // include replay p.IncludeReplay = includeReplay.Checked; // mass start p.MassStart = massStart.Checked; // tails var tails = new List <KmlReplayTail>(); if (replayTailsVisible.Checked) { var tail = new KmlReplayTail() { StartVisible = new TimeSpan(0) }; double tailDurationSeconds = 0; if (double.TryParse(replayTailDuration.Text, out tailDurationSeconds)) { tailDurationSeconds = Math.Max(0.1, Math.Min(3600, tailDurationSeconds)); tail.EndVisible = new TimeSpan((long)(tailDurationSeconds * TimeSpan.TicksPerSecond)); } else { tail.EndVisible = null; } tails.Add(tail); } p.ReplayTails = tails; // replay time interval double timeInterval; if (double.TryParse(replayTimeInterval.Text, out timeInterval)) { timeInterval = Math.Max(0.1, Math.Min(3600, timeInterval)); p.ReplayTimeInterval = new TimeSpan((long)(timeInterval * TimeSpan.TicksPerSecond)); } else { p.ReplayTimeInterval = originalMultipleFileProperties.ReplayTimeInterval; } // restart after each lap p.ReplayRestartAfterEachLap = replayRestartAfterEachLap.Checked; // opacity var opacity = (originalMultipleFileProperties.Colors.Count > 0 ? (double)originalMultipleFileProperties.Colors[0].A / 255 : 1.0); for (var i = 0; i < originalMultipleFileProperties.Colors.Count; i++) { p.Colors[i] = Color.FromArgb((int)(255 * opacity), p.Colors[i]); } // route line width p.RouteLineWidth = originalMultipleFileProperties.RouteLineWidth; return(p); }
private KmlProperties GetPropertiesFromControls() { var controlProperties = new KmlProperties { MapType = (includeMap.Checked ? KmlExportMapType.Map : KmlExportMapType.None) }; if (includeRoute.Checked && routeLineStyle.SelectedIndex == 0) { controlProperties.MapType = KmlExportMapType.MapAndRoute; } if (!includeRoute.Checked) { controlProperties.RouteType = KmlExportRouteType.None; } else { switch (routeLineStyle.SelectedIndex) { case 1: controlProperties.RouteType = KmlExportRouteType.Monochrome; break; case 2: controlProperties.RouteType = KmlExportRouteType.ColorCoded; break; default: controlProperties.RouteType = KmlExportRouteType.None; break; } } controlProperties.RouteAdaptionStyle = includeMap.Checked && adaptRouteToMapImage.Checked ? KmlRouteAdaptationStyle.AdaptToSessionMapImage : KmlRouteAdaptationStyle.NoAdaption; if (!includeReplay.Checked) { controlProperties.ReplayType = KmlExportReplayType.None; } else { switch (replayMarkerStyle.SelectedIndex) { case 0: controlProperties.ReplayType = KmlExportReplayType.Monochrome; break; case 1: controlProperties.ReplayType = KmlExportReplayType.ColorCoded; break; default: controlProperties.ReplayType = KmlExportReplayType.None; break; } double timeInterval = 1; double.TryParse(replayTimeInterval.Text, out timeInterval); timeInterval = Math.Max(0.1, Math.Min(3600, timeInterval)); controlProperties.ReplayTimeInterval = new TimeSpan((long)(timeInterval * TimeSpan.TicksPerSecond)); var tails = new List <KmlReplayTail>(); if (replayTailVisible.Checked) { var tail = new KmlReplayTail() { StartVisible = new TimeSpan(0) }; double tailDurationSeconds = 0; if (double.TryParse(replayTailDuration.Text, out tailDurationSeconds)) { tailDurationSeconds = Math.Max(0.1, Math.Min(3600, tailDurationSeconds)); tail.EndVisible = new TimeSpan((long)(tailDurationSeconds * TimeSpan.TicksPerSecond)); } else { tail.EndVisible = null; // infinite } tails.Add(tail); } controlProperties.ReplayTails = tails; } return(controlProperties); }