//最佳路径分析
        private void PathAnalyst_Click(object sender, RoutedEventArgs e)
        {
            if (points.Count < 2)
            {
                MessageBox.Show("请指定途经点");
                return;
            }

            if (featuresLayer.Features.Count > 0)
            {
                featuresLayer.Features.Clear();
            }
            //定义 Point2D 类型的参数
            FindPathParameters<Point2D> paramPoint2D = new FindPathParameters<Point2D>
            {
                Nodes = points,
                HasLeastEdgeCount = true,
                Parameter = new TransportationAnalystParameter
                {
                    ResultSetting = new TransportationAnalystResultSetting
                    {
                        ReturnEdgeFeatures = true,
                        ReturnEdgeGeometry = true,
                        ReturnEdgeIDs = true,
                        ReturnNodeFeatures = true,
                        ReturnNodeGeometry = true,
                        ReturnNodeIDs = true,
                        ReturnPathGuides = true,
                        ReturnRoutes = true
                    },
                    WeightFieldName = "length",
                    TurnWeightField = "TurnCost",
                    BarrierPoints = barrierPoints,
                }
            };

            //与服务器交互
            FindPathService findPathService = new FindPathService("http://*****:*****@Changchun");
            findPathService.ProcessAsync(paramPoint2D);
            findPathService.ProcessCompleted += new EventHandler<FindPathEventArgs>(findPathService_ProcessCompleted);
            findPathService.Failed += new EventHandler<ServiceFailedEventArgs>(findPathService_Failed);
        }
        //最佳路径分析
        async private void PathAnalyst_Click(object sender, RoutedEventArgs e)
        {
            if (points.Count < 2)
            {
                await MessageBox.Show("请指定途经点");
                return;
            }

            if (featuresLayer.Features.Count > 0)
            {
                featuresLayer.Features.Clear();
            }
            //定义 Point2D 类型的参数
            FindPathParameters<Point2D> paramPoint2D = new FindPathParameters<Point2D>
            {
                Nodes = points,
                HasLeastEdgeCount = true,
                Parameter = new TransportationAnalystParameter
                {
                    ResultSetting = new TransportationAnalystResultSetting
                    {
                        ReturnEdgeFeatures = true,
                        ReturnEdgeGeometry = true,
                        ReturnEdgeIDs = true,
                        ReturnNodeFeatures = true,
                        ReturnNodeGeometry = true,
                        ReturnNodeIDs = true,
                        ReturnPathGuides = true,
                        ReturnRoutes = true
                    },
                    WeightFieldName = "length",
                    TurnWeightField = "TurnCost",
                    BarrierPoints = barrierPoints,
                }
            };

            //与服务器交互
            try
            {
                FindPathService findPathService = new FindPathService(url);
                var result = await findPathService.ProcessAsync(paramPoint2D);

                //路径样式
                PredefinedLineStyle simpleLineStyle = new PredefinedLineStyle();
                simpleLineStyle.Stroke = new SolidColorBrush(Colors.Blue);
                simpleLineStyle.StrokeThickness = 2;
                //服务器返回结果,将最佳路径显示在客户端
                if (result != null)
                {
                    if (result.PathList != null)
                    {
                        foreach (ServerPath p in result.PathList)
                        {
                            //将要素添加到图层
                            featuresLayer.Features.Add(new Feature { Geometry = p.Route.Line, Style = simpleLineStyle });
                            this.length.Text = "路线长度:" + p.Route.Length.ToString();
                            this.cost.Text = "花费:" + p.Weight.ToString();
                        }
                        resultPanel.Visibility = Visibility.Visible;
                    }
                    else
                    {
                        await MessageBox.Show("此设置下无可用路径");
                    }
                }

            }
            //服务器计算失败提示失败信息
            catch(Exception ex) 
            {
                MessageBox.Show(ex.Message);
            }
        }
        private void FindPath_Click(object sender, RoutedEventArgs e)
        {
            FindPathParameters<int> paramInt = new FindPathParameters<int>
            {
                Nodes = new List<int> { 2, 3 },
                HasLeastEdgeCount = true,
                Parameter = new TransportationAnalystParameter
                {
                    ResultSetting = new TransportationAnalystResultSetting
                    {
                        ReturnEdgeFeatures = true,
                        ReturnEdgeGeometry = true,
                        ReturnEdgeIDs = true,
                        //ReturnImage = false,
                        ReturnNodeFeatures = true,
                        ReturnNodeGeometry = true,
                        ReturnNodeIDs = true,
                        ReturnPathGuides = true,
                        ReturnRoutes = true
                    },
                    //MapParameter = new NAResultMapParameter
                    //{
                    //    Viewer = new Rect(0, 0, 256, 256),
                    //    Format = OutputFormat.PNG
                    //},
                    WeightFieldName = "length",
                    TurnWeightField = "TurnCost"
                }
            };

            FindPathParameters<Point2D> paramPoint2D = new FindPathParameters<Point2D>
            {
                Nodes = new List<Point2D> { new Point2D(4737.65773280094, -3406.06007171244),
                    new Point2D(5645.28372661686, -3312.88173774655) },
                HasLeastEdgeCount = true,
                Parameter = new TransportationAnalystParameter
                {
                    ResultSetting = new TransportationAnalystResultSetting
                    {
                        ReturnEdgeFeatures = true,
                        ReturnEdgeGeometry = true,
                        ReturnEdgeIDs = true,
                        //ReturnImage = false,
                        ReturnNodeFeatures = true,
                        ReturnNodeGeometry = true,
                        ReturnNodeIDs = true,
                        ReturnPathGuides = true,
                        ReturnRoutes = true
                    },
                    //MapParameter = new NAResultMapParameter
                    //{
                    //    Viewer = new Rect(0, 0, 256, 256),
                    //    Format = OutputFormat.PNG
                    //},
                    WeightFieldName = "length",
                    TurnWeightField = "TurnCost"
                }
            };
            FindPathService findPathService = new FindPathService("http://*****:*****@Changchun") { };
            //findPathService.ProcessAsync(paramInt);
            findPathService.ProcessAsync(paramPoint2D);
            findPathService.Failed += Failed;
            findPathService.ProcessCompleted += new EventHandler<FindPathEventArgs>(findPathService_ProcessCompleted);
        }