${IS6_QueryLayer_Title}
${IS6_QueryLayer_Description}
//服务器返回查询结果 private void DrawCompleted(object sender, DrawEventArgs e) { QueryLayer querylayer = new QueryLayer(); querylayer.LayerName = comboBox.SelectionBoxItem.ToString(); List<QueryLayer> queryLayers = new List<QueryLayer>() { querylayer }; QueryParam queryParam = new QueryParam() { ExpectCount = 0, QueryLayers = queryLayers, StartRecord = 0 }; QueryByGeometryParameters parameters = new QueryByGeometryParameters { Geometry = e.Geometry, MapName = "changchun", QueryParam = queryParam }; QueryByGeometryService queryByGeometryService = new QueryByGeometryService("http://localhost/IS/AjaxDemo"); queryByGeometryService.ProcessAsync(parameters); queryByGeometryService.Failed += new EventHandler<ServiceFailedEventArgs>(queryByGeometryService_Failed); queryByGeometryService.ProcessCompleted += new EventHandler<QueryServiceEventArgs>(queryByGeometryService_ProcessCompleted); featuresLayer.MouseLeftButtonDown +=new EventHandler<FeatureMouseButtonEventArgs>(featuresLayer_MouseLeftButtonDown); }
//SQL查询 private void Query_Click(object sender, RoutedEventArgs e) { string str = MyTextBox.Text; if (str == "") { MessageBox.Show("请输入SQL条件!"); } QueryLayer querylayer = new QueryLayer(); querylayer.LayerName = comboBox.SelectionBoxItem.ToString(); querylayer.WhereClause = str; List<QueryLayer> queryLayers = new List<QueryLayer>() { querylayer }; QueryParam queryParam = new QueryParam() { ExpectCount = 0, StartRecord = 0, QueryLayers = queryLayers }; QueryBySqlParameters parameters = new QueryBySqlParameters { MapName = "changchun", QueryParam = queryParam }; QueryBySqlService queryBySqlService = new QueryBySqlService("http://localhost/IS/AjaxDemo"); queryBySqlService.ProcessAsync(parameters); queryBySqlService.Failed += new EventHandler<ServiceFailedEventArgs>(queryBySqlService_Failed); queryBySqlService.ProcessCompleted += new EventHandler<QueryServiceEventArgs>(queryBySqlService_ProcessCompleted); featuresLayer.MouseLeftButtonDown +=new EventHandler<FeatureMouseButtonEventArgs>(featuresLayer_MouseLeftButtonDown); }
//中心点查询 private void point_DrawCompleted(object sender, DrawEventArgs e) { QueryParam queryParam = new QueryParam(); QueryLayer queryLayer = new QueryLayer(); queryLayer.LayerName = comboBox.SelectionBoxItem.ToString(); List<QueryLayer> queryLayers = new List<QueryLayer> { queryLayer }; queryParam = new QueryParam() { ExpectCount = 0, QueryLayers = queryLayers, StartRecord = 0 }; //将文本中读取的容限值转换为Double类型,如果值为0则将其设为100 double tolerance; if (!double.TryParse(MyTextBox.Text, out tolerance)) { tolerance = 100; } QueryByCenterParameters parameters = new QueryByCenterParameters { MapName = "changchun", CenterPoint = e.Geometry.Bounds.Center, Tolerance = tolerance, QueryParam = queryParam }; if (FindNearest.IsChecked == true) { parameters.IsNearest = true; } //与服务器交互 QueryByCenterService query = new QueryByCenterService("http://localhost/IS/AjaxDemo"); query.ProcessAsync(parameters); query.Failed += new EventHandler<ServiceFailedEventArgs>(query_Failed); query.ProcessCompleted += new EventHandler<QueryServiceEventArgs>(query_ProcessCompleted); featuresLayer.MouseLeftButtonDown+=new EventHandler<FeatureMouseButtonEventArgs>(featuresLayer_MouseLeftButtonDown); }
//设置缓冲区查询参数 private void Button_Click(object sender, RoutedEventArgs e) { BufferQueryParameters parameters = new BufferQueryParameters(); //几何对象缓冲区查询 if (BufferQuery.IsChecked == true) { BufferParam bufferParam = new BufferParam() { Distance = 500, FromCustomGeo = true, Geometries = geometries, Smoothness = 12, QueryMode = SpatialQueryMode.AreaIntersect, ReturnBufferResult = true }; QueryLayer queriedLayer = new QueryLayer(); queriedLayer.LayerName = QueriedComboBox.SelectionBoxItem.ToString(); QueryParam queryParam = new QueryParam() { QueryLayers = new List<QueryLayer> { queriedLayer } }; parameters = new BufferQueryParameters() { MapName = "changchun", QueryParam = queryParam, BufferParam = bufferParam }; } //地物缓冲区查询 else { QueryLayer queryLayer = new QueryLayer(); queryLayer.LayerName = QueryComboBox.SelectionBoxItem.ToString(); queryLayer.WhereClause = queryText.Text; BufferParam bufferParam = new BufferParam() { FromLayer = queryLayer, Distance = 500, FromCustomGeo = false, Smoothness = 12, QueryMode = SpatialQueryMode.AreaIntersect, ReturnBufferResult = true }; QueryLayer queriedLayer = new QueryLayer(); queriedLayer.LayerName = QueriedComboBox.SelectionBoxItem.ToString(); QueryParam queryParam = new QueryParam() { QueryLayers = new List<QueryLayer> { queriedLayer } }; parameters = new BufferQueryParameters() { MapName = "changchun", QueryParam = queryParam, BufferParam = bufferParam }; } BufferQueryService bufferQueryService = new BufferQueryService("http://localhost/IS/AjaxDemo"); bufferQueryService.ProcessAsync(parameters); bufferQueryService.Failed += new EventHandler<ServiceFailedEventArgs>(Service_Failed); bufferQueryService.ProcessCompleted += new EventHandler<BufferQueryEventArgs>(bufferQueryService_ProcessCompleted); resultLayer.MouseLeftButtonDown += new EventHandler<FeatureMouseButtonEventArgs>(resultLayer_MouseLeftButtonDown); }
internal static string ToJson(QueryLayer queryLayer) { if (queryLayer == null) { return null; } string json = "{"; List<string> list = new List<string>(); if (!string.IsNullOrEmpty(queryLayer.GroupClause)) { list.Add(string.Format("\"groupClause\":\"{0}\"", queryLayer.GroupClause)); } else { list.Add("\"groupClause\":\"\""); } list.Add(string.Format("\"layerId\":{0}", queryLayer.LayerID)); if (!string.IsNullOrEmpty(queryLayer.LayerName)) { list.Add(string.Format("\"layerName\":\"{0}\"", queryLayer.LayerName)); } else { list.Add("\"layerName\":\"\""); } if (queryLayer.ReturnFields != null && queryLayer.ReturnFields.Count > 0) { List<string> temp = new List<string>(); for (int i = 0; i < queryLayer.ReturnFields.Count; i++) { temp.Add(string.Format("\"{0}\"", queryLayer.ReturnFields[i])); } list.Add(string.Format("\"returnFields\":[{0}]", string.Join(",", temp.ToArray()))); } else { list.Add("\"returnFields\":null"); } if (!string.IsNullOrEmpty(queryLayer.SortClause)) { list.Add(string.Format("\"sortClause\":\"{0}\"", queryLayer.SortClause)); } else { list.Add("\"sortClause\":\"\""); } if (!string.IsNullOrEmpty(queryLayer.WhereClause)) { list.Add(string.Format("\"whereClause\":\"{0}\"", queryLayer.WhereClause)); } else { list.Add("\"whereClause\":\"\""); } IList<RelQueryTableInfo> relQueryTableInfos = queryLayer.RelQueryTableInfos; if (relQueryTableInfos != null && relQueryTableInfos.Count > 0) { List<string> ls = new List<string>(); for (int i = 0; i < relQueryTableInfos.Count; i++) { ls.Add(RelQueryTableInfo.ToJson(relQueryTableInfos[i])); } string temp = "[" + string.Join(",", ls.ToArray()) + "]"; list.Add(string.Format("\"relQueryTableInfos\":{0}", temp)); } else { list.Add(string.Format("\"relQueryTableInfos\":null")); } json += string.Join(",", list.ToArray()); json += "}"; return json; }