Example #1
0
        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);
        }
Example #2
0
        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);
        }