${iServerJava6R_Route_Title}

${iServerJava6R_Route_Description}

Inheritance: SuperMap.Web.Core.GeoLine
        void action_DrawCompleted(object sender, DrawEventArgs e)
        {
            _elementsLayer.Children.Remove(pushpin);
            //this.boder.Visibility = Visibility.Collapsed;
            Route route = new Route();
            if (_routeLayer.Features.Count > 0)
            {
                Feature f = _routeLayer.Features[0];
                route = f.Geometry as Route;
                
            }

            pushpin.IsEnabled = false;
            pushpin.Location = e.Geometry.Bounds.Center;
            pushpin.Background = new SolidColorBrush(Colors.Red);
            pushpin.Content = "O";

            _elementsLayer.AddChild(pushpin);
            

           _queryPoint = (e.Geometry as GeoPoint).Location;

            RouteCalculateMeasureParameters param = new RouteCalculateMeasureParameters();
            param.IsIgnoreGap = true;
            param.Point = _queryPoint;
            param.SourceRoute = route;
            param.Tolerance = 100;
            RouteCalculateMeasureService service = new RouteCalculateMeasureService(_serviceUrl);
            service.ProcessComplated += service_ProcessComplated;
            service.Failed += service_Failed;
            service.ProcessAsync(param);
        }
 internal Route ToRoute()
 {
     if (this.Parts != null)
     {
         Route route = new Route();
         route.Parts = new ObservableCollection<Point2DCollection>();
         int index = 0;
         foreach (var part in this.Parts)
         {
             Point2DCollection collection = new Point2DCollection();
             for (int i = index; i < index + part; i++)
             {
                 collection.Add(this.Points[i]);
             }
             route.Parts.Add(collection);
         }
         route.MinM = ((ServerRoute)this).MinM;
         route.MaxM = ((ServerRoute)this).MaxM;
         route.Length = ((ServerRoute)this).Length;
         return route;
     }
     return null;
 }
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            if (_routeLayer.Features.Count > 1)
            {
                _routeLayer.Features.RemoveAt(1);
            }
            if (string.IsNullOrEmpty(StartValue.Text) || string.IsNullOrEmpty(EndValue.Text))
            {
                MessageBox.Show("请输入里程值!");
                return;
            }

            Route route = new Route();
            if (_routeLayer.Features.Count > 0)
            {
                Feature f = _routeLayer.Features[0];
                route = f.Geometry as Route;

            }

            double sValue = 0;
            double.TryParse(StartValue.Text, out sValue);
            double eValue = 0;
            double.TryParse(EndValue.Text, out eValue);

            if (_routeLayer.Features.Count > 0)
            {
                Feature f = _routeLayer.Features[0];
                route = f.Geometry as Route;
            }
            RouteLocatorParameters param = new RouteLocatorParameters();

            param.SourceRoute = route;
            param.Type = LocateType.LINE;
            param.StartMeasure = sValue;
            param.EndMeasure = eValue;
            param.IsIgnoreGap = false;

            RouteLocatorService service = new RouteLocatorService(_serviceUrl);
            service.ProcessAsync(param);
            service.ProcessCompleted += new EventHandler<RouteLocatorEventArgs>(service_ProcessCompleted);

            service.Failed += new EventHandler<ServiceFailedEventArgs>(service_Failed);
        }
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrEmpty(MValue.Text))
            {
                MessageBox.Show("请输入里程值!");
                return;
            }
            Route route = new Route();
            if (_routeLayer.Features.Count > 0)
            {
                Feature f = _routeLayer.Features[0];
                route = f.Geometry as Route;

            }
            else
            {
                MessageBox.Show("请先获取路由对象!");
                return;
            }

            double mValue=0;
            double.TryParse(MValue.Text, out mValue);
            if (_routeLayer.Features.Count > 0)
            {
                Feature f = _routeLayer.Features[0];
                route = f.Geometry as Route;
            }

            RouteLocatorParameters param = new RouteLocatorParameters();

            param.SourceRoute = route;
            param.Type = LocateType.POINT;
            param.Measure = mValue;
            param.Offset = 0;
            param.IsIgnoreGap = false;

            RouteLocatorService service = new RouteLocatorService(_serviceUrl);
            service.ProcessAsync(param);
            service.ProcessCompleted += new EventHandler<RouteLocatorEventArgs>(service_ProcessCompleted);

            service.Failed += new EventHandler<ServiceFailedEventArgs>(service_Failed);

        }