private void closestfacilities_Click(object sender, RoutedEventArgs e) { FindClosestFacilitiesParameters<Point2D> parameters1 = new FindClosestFacilitiesParameters<Point2D> { Event = new Point2D(32.754, 23.205), Facilities = new List<Point2D> { new Point2D(50.754, 50.205), new Point2D(80.754, 64.205) }, FromEvent = true, MaxWeight = 0, ExpectFacilityCount = 2, 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" } }; FindClosestFacilitiesParameters<int> p = new FindClosestFacilitiesParameters<int>() { Event = 2, Facilities = new List<int> { 1, 6, 21 }, FromEvent = true, MaxWeight = 0, ExpectFacilityCount = 2, 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" } }; FindClosestFacilitiesService closestFacilitiesService = new FindClosestFacilitiesService(networkUrl); closestFacilitiesService.ProcessAsync(p); //closestFacilitiesService.ProcessAsync(parameters1); closestFacilitiesService.Failed += Failed; closestFacilitiesService.ProcessCompleted += new EventHandler<FindClosestFacilitiesEventArgs>(closestFacilitiesService_ProcessCompleted); }
//最近设施查找 private void FindClosetFacility_Click(object sender, RoutedEventArgs e) { if (featuresLayer.Features.Count > 0) { featuresLayer.Features.Clear(); } if (eventp.IsEmpty) { MessageBox.Show("请指定事件点"); return; } if (points.Count == 0) { MessageBox.Show("请指设施点"); return; } FindClosestFacilitiesParameters<Point2D> paramPoint2D = new FindClosestFacilitiesParameters<Point2D> { Event = eventp, Facilities = points, FromEvent = true, MaxWeight = 0, ExpectFacilityCount = 1, 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" } }; //与服务器交互 FindClosestFacilitiesService findclosestFacilitiesService = new FindClosestFacilitiesService("http://*****:*****@Changchun"); findclosestFacilitiesService.ProcessAsync(paramPoint2D); findclosestFacilitiesService.Failed += new EventHandler<ServiceFailedEventArgs>(findclosestFacilitiesService_Failed); findclosestFacilitiesService.ProcessCompleted += new EventHandler<FindClosestFacilitiesEventArgs>(findclosestFacilitiesService_ProcessCompleted); }
//最近设施查找 async private void FindClosetFacility_Click(object sender, RoutedEventArgs e) { if (featuresLayer.Features.Count > 0) { featuresLayer.Features.Clear(); } if (Point2D.IsNullOrEmpty(eventp)) { await MessageBox.Show("请指定事件点"); return; } if (points.Count == 0) { await MessageBox.Show("请指设施点"); return; } FindClosestFacilitiesParameters<Point2D> paramPoint2D = new FindClosestFacilitiesParameters<Point2D> { Event = eventp, Facilities = points, FromEvent = true, MaxWeight = 0, ExpectFacilityCount = 1, 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" } }; try { FindClosestFacilitiesService findclosestFacilitiesService = new FindClosestFacilitiesService(url); var result = await findclosestFacilitiesService.ProcessAsync(paramPoint2D); //路径样式 PredefinedLineStyle simpleLineStyle = new PredefinedLineStyle(); simpleLineStyle.Stroke = new SolidColorBrush(Colors.Blue); simpleLineStyle.StrokeThickness = 2; if (result != null && result.FacilityPathList != null) { foreach (ServerPath path in result.FacilityPathList) { featuresLayer.Features.Add(new Feature { Geometry = path.Route.Line, Style = simpleLineStyle }); } } else { await MessageBox.Show("查询结果为空"); } } catch(Exception ex) { MessageBox.Show(ex.Message); } }