${IS6_MeasureParameter_Title}
${IS6_MeasureParameter_Description}
/// <summary>${IS6_MeasureService_method_processAsync_D}</summary> /// <param name="parameters">${IS6_MeasureService_method_processAsync_param_parameters}</param> /// <param name="state">${IS6_MeasureService_method_processAsync_param_state}</param> public void ProcessAsync(MeasureParameters parameters, object state) { if (parameters == null) { //TODO:资源 throw new ArgumentNullException(ExceptionStrings.ArgumentIsNull); //throw new ArgumentNullException("MeasureParameters is Null"); } if (string.IsNullOrEmpty(this.Url)) { //TODO:资源 throw new InvalidOperationException(ExceptionStrings.InvalidUrl); //throw new InvalidOperationException("Url is not set"); } base.SubmitRequest(base.Url + "/common.ashx?", GetParameters(parameters), new EventHandler<RequestEventArgs>(request_Completed), state, false); }
//距离量算 private void line_DrawCompleted(object sender, DrawEventArgs e) { //将线标绘在客户端要素图层 PredefinedLineStyle lineStyle = new PredefinedLineStyle { Stroke = new SolidColorBrush(Colors.Red), StrokeThickness = 3 }; Feature feature = new Feature { Geometry = e.Geometry, Style = lineStyle }; featuresLayer.Features.Add(feature); MeasureParameters parameters = new MeasureParameters { Geometry = e.Geometry, MapName = "changchun" }; MeasureService measureDistance = new MeasureService("http://localhost/IS/AjaxDemo"); measureDistance.ProcessAsync(parameters); measureDistance.ProcessCompleted += new EventHandler<MeasureEventArgs>(measureDistance_ProcessCompleted); measureDistance.Failed += new EventHandler<ServiceFailedEventArgs>(measure_Failed); }
//面积量算 private void polygon_DrawCompleted(object sender, DrawEventArgs e) { //将面标绘在客户端任意图层 PolygonElement polygon = e.Element as PolygonElement; polygon.Opacity = 0.618; polygon.StrokeThickness = 1; polygon.Fill = new SolidColorBrush(Colors.LightGray); this.elementsLayer.Children.Add(polygon); MeasureParameters parameters = new MeasureParameters { Geometry = e.Geometry, MapName = "changchun" }; //与服务器交互 MeasureService measureRegion = new MeasureService("http://localhost/IS/AjaxDemo"); measureRegion.ProcessAsync(parameters); measureRegion.ProcessCompleted += new EventHandler<MeasureEventArgs>(measureRegion_ProcessCompleted); measureRegion.Failed += new EventHandler<ServiceFailedEventArgs>(measure_Failed); }
private Dictionary<string, string> GetParameters(MeasureParameters parameters) { Dictionary<string, string> dictionary = new Dictionary<string, string>(); Point2DCollection gps = new Point2DCollection(); if (parameters.Geometry is GeoLine) { string method = "MeasureDistance"; dictionary.Add("map", parameters.MapName); dictionary.Add("method", method); foreach (Point2DCollection g in (parameters.Geometry as GeoLine).Parts) { for (int i = 0; i < g.Count; i++) { gps.Add(g[i]); } } dictionary.Add("points", JsonHelper.FromPoint2DCollection(gps)); dictionary.Add("trackingLayerIndex", "-1"); dictionary.Add("userID", Guid.NewGuid().ToString()); dictionary.Add("isHighlight", "false"); } else if (parameters.Geometry is GeoRegion) { string method = "MeasureArea"; dictionary.Add("map", parameters.MapName); dictionary.Add("method", method); foreach (Point2DCollection g in (parameters.Geometry as GeoRegion).Parts) { for (int i = 0; i < g.Count; i++) { gps.Add(g[i]); } } dictionary.Add("points", JsonHelper.FromPoint2DCollection(gps)); dictionary.Add("trackingLayerIndex", "-1"); dictionary.Add("userID", Guid.NewGuid().ToString()); dictionary.Add("isHighlight", "false"); } return dictionary; }
/// <summary>${IS6_MeasureService_method_processAsync_D}</summary> /// <overloads>${IS6_MeasureService_method_processAsync_overloads}</overloads> /// <param name="parameters">${IS6_MeasureService_method_processAsync_param_parameters}</param> public void ProcessAsync(MeasureParameters parameters) { ProcessAsync(parameters, null); }