private void request_Completed(object sender, RequestEventArgs e) { JsonObject jsonObject = (JsonObject)JsonObject.Parse(e.Result); BufferResultSet result = BufferResultSet.FromJson(jsonObject); LastResult = result; BufferQueryEventArgs args = new BufferQueryEventArgs(result, e.Result, e.UserState); OnProcessCompleted(args); }
/// <summary>${iServer2_BufferQueryEventArgs_constructor_None_D}</summary> public BufferQueryEventArgs(BufferResultSet resultSet, string originResult, object userToken) : base(userToken) { BufferResultSet = resultSet; OriginBufferResult = originResult; }
internal static BufferResultSet FromJson(JsonObject jsonObject) { if (jsonObject == null) { return null; } BufferResultSet result = new BufferResultSet(); result.ResultSet = ResultSet.FromJson((JsonObject)jsonObject["resultSet"]); ServerGeometry serverGeometry = ServerGeometry.FromJson((JsonObject)jsonObject["bufferGeometry"]); if (serverGeometry != null) { result.BufferRegion = serverGeometry.ToGeoRegion(); } return result; }
// showResult 函数将查询结果在DataGrid控件和地图中显示 private void ShowResult(BufferResultSet result) { //显示或隐藏相关控件 DataStackPanel.Visibility = Visibility.Visible; SchoolScroll.Visibility = Visibility.Collapsed; dgSchool.Visibility = Visibility.Collapsed; ResidentialScroll.Visibility = Visibility.Collapsed; dgResidential.Visibility = Visibility.Collapsed; dgRoad.Visibility = Visibility.Collapsed; RoadScroll.Visibility = Visibility.Collapsed; //结果为空 if (result == null || result.BufferRegion == null || result.ResultSet == null) { MessageBox.Show("No Result!"); return; } //遍历全部结果记录集 foreach (RecordSet item in result.ResultSet.RecordSets) { //获取“School@changchun”图层上查询的结果并进行显示 if (item.LayerName == SchoolLayerName) { SchoolScroll.Visibility = Visibility.Visible; dgSchool.Visibility = Visibility.Visible; List<SchoolData> listSchool = new List<SchoolData>(); //将记录集中的每条记录转换成矢量要素,对其进行遍历,并将矢量要素在地图和DataGrid控件中显示 foreach (Feature feature in item.ToFeatureSet()) { featuresLayer.Features.Add(feature); listSchool.Add(new SchoolData { SmID = feature.Attributes["SmID"].ToString(), SmUserID = feature.Attributes["SmUserID"].ToString(), name = feature.Attributes["name"].ToString(), X = feature.Attributes["X"].ToString(), Y = feature.Attributes["Y"].ToString(), SmX = feature.Attributes["SmX"].ToString(), SmY = feature.Attributes["SmY"].ToString() }); } dgSchool.ItemsSource = listSchool; } //获取"Railway@changchun"图层上查询的结果并进行显示 if (item.LayerName == RailLayerName) { RoadScroll.Visibility = Visibility.Visible; dgRoad.Visibility = Visibility.Visible; List<RoadData> listData = new List<RoadData>(); //将记录集中的每条记录转换成矢量要素,对其进行遍历,并将矢量要素在地图和DataGrid控件中显示 foreach (Feature feature in item.ToFeatureSet()) { featuresLayer.Features.Add(feature); listData.Add(new RoadData { SmID = feature.Attributes["SmID"].ToString(), SmUserID = feature.Attributes["SmUserID"].ToString(), Name = feature.Attributes["Name"].ToString(), SmLength = feature.Attributes["SmLength"].ToString(), }); } dgRoad.ItemsSource = listData; } //获取"ResidentialArea@changchun"图层上查询的结果并进行显示 if (item.LayerName == ResidentialLayerName) { ResidentialScroll.Visibility = Visibility.Visible; dgResidential.Visibility = Visibility.Visible; List<ResidentialData> listResidential = new List<ResidentialData>(); //将记录集中的每条记录转换成矢量要素,对其进行遍历,并将矢量要素在地图和DataGrid控件中显示 foreach (Feature feature in item.ToFeatureSet()) { featuresLayer.Features.Add(feature); listResidential.Add(new ResidentialData { SmID = feature.Attributes["SmID"].ToString(), SmUserID = feature.Attributes["SmUserID"].ToString(), SmArea = feature.Attributes["SmArea"].ToString(), SmPerimeter = feature.Attributes["SmPerimeter"].ToString(), ClassID = feature.Attributes["ClassID"].ToString(), }); } dgResidential.ItemsSource = listResidential; } } featuresLayer.AddFeature(new Feature { Geometry = result.BufferRegion, Style = new PredefinedFillStyle { Fill = new SolidColorBrush { Color = Colors.Yellow, Opacity = 0.5, }, }, }); }