private void TestRoute()
        {
            Core.FileManager.OpenGPSFilesManager fileManager = new Core.FileManager.OpenGPSFilesManager();
            var file = fileManager.GetFile(@"C:\Users\Public\Documents\GPX\538211.gpx");

            _routeOverlay.IsVisibile = true;
            navigationalMapControl1.Overlays.Add(_routeOverlay);

            if (file.Tracks.Count > 0)
            {
                Core.NavigationElements.Services service = new Core.NavigationElements.Services();
                _tempTrack = service.TrackSimplifier(file.Tracks[0]);

                navigationalMapControl1.DrawTrack(_tempTrack, true);

                List<GMapRoute> routes = navigationalMapControl1.GetRoute(_tempTrack);

                foreach (GMapRoute route in routes)
                {
                    for (int i = 0; i < route.Points.Count; i++)
                    {
                        var marker = new RoutePointMarker(route.Points[i], i, route);
                        marker.IsVisible = true;
                        _routeMarkers.Add(marker);
                        _routeOverlay.Markers.Add(marker);
                    }
                }
            }
        }
        private void AddRouteMarkerFromGhostMarker(GhostPoint ghostPoint, GMapRoute route)
        {
            var routeMarker = new RoutePointMarker(ghostPoint.Marker.Position,
                ghostPoint.IndexPoint,
                route);

            //_routeMarkers.Remove(ghostPoint.Marker);
            _routeMarkers.Insert(ghostPoint.IndexPoint, routeMarker);

            _routeOverlay.Markers.Add(routeMarker);

            route.Points.Insert(ghostPoint.IndexPoint, routeMarker.Position);

            //RemoveGhostPointAt(ghostPoint.IndexPoint , route);

            for (int i = ghostPoint.IndexPoint + 1; i < _routeMarkers.Count; i++)
            {

                if (IsGhostPointExistForIndex(_routeMarkers[i].RoutePointIndex, route))
                {
                    GetGhostPointForIndex(_routeMarkers[i].RoutePointIndex, route).SetIndexPoint(i);
                }

                ((RoutePointMarker)_routeMarkers[i]).SetRouteIndex(i);

            }


            //for (int i = ghostPoint.IndexPoint + 1; i < _ghostPointDictionary[route].Count; i++)
            //{
            //    _ghostPointDictionary[route][i].SetIndexPoint(i + 1);
            //}

            _selectedMarker = routeMarker;

            //CreateGhostPoint(ghostPoint.IndexPoint-1, routeMarker.Position, route);
        }