public static void Query(this FeatureLayer layer, IQueryResultContainer queryResultContainer, string geometry, string keywords) { if (!IsAttachedEvent) { layer.Map.ServerAgent.MapServiceClient.QueryCompleted += new EventHandler <AgileMapServiceProxy.QueryCompletedEventArgs>(MapServiceClient_QueryCompleted); IsAttachedEvent = true; } layer.Map.ServerAgent.MapServiceClient.QueryAsync(layer.Id, geometry, keywords, new QueryStatus(queryResultContainer, layer)); }
private void QueryFeatures(string keys, string lyrname) { IQueryResultContainer resultContainer = GetQueryResultContainer(); IFeatureLayer lyr = _mapControl.Map.LayerContainer.GetLayerByName(lyrname) as IFeatureLayer; if (lyr == null) { return; } IFeatureClass fetclass = lyr.Class as IFeatureClass; Feature[] fs = (fetclass.DataSource as IFeatureDataSource).Query(new QueryFilter(keys)); resultContainer.AddFeatures(fs); }
private void QueryPlacements(string keys) { if (_mapControl.Map == null || _mapControl.Map.LayerContainer.Layers.Length == 0) { return; } Application.DoEvents(); IQueryResultContainer resultContainer = GetQueryResultContainer(); resultContainer.ResultContainerVisible = true; string[] layers = GetLayers(ref keys); foreach (string lyrname in layers) { AsyncQueryFeaturesDelegate querydel = new AsyncQueryFeaturesDelegate(QueryFeatures); resultContainer.BeginInvokeContiner.BeginInvoke(querydel, keys, lyrname); } }
public static void Query(this Map map, IQueryResultContainer queryResultContainer, string geometry, string keywords) { if (map.Layers == null || map.Layers.Count == 0) { return; } if (!IsAttachedEvent) { map.ServerAgent.MapServiceClient.QueryCompleted += new EventHandler <AgileMapServiceProxy.QueryCompletedEventArgs>(MapServiceClient_QueryCompleted); IsAttachedEvent = true; } // foreach (Layer lyr in map.Layers) { FeatureLayer fetLyr = lyr as FeatureLayer; if (fetLyr != null) { map.ServerAgent.MapServiceClient.QueryAsync(fetLyr.Id, geometry, keywords, new QueryStatus(queryResultContainer, fetLyr)); } } }
private void HanleQueryKey(string keys) { PointF ptf = GeoCoordHelper.ExtractGeoCoord(keys); ShapePoint pt = new ShapePoint(ptf.X, ptf.Y); if (!(pt.X < double.Epsilon && pt.Y < double.Epsilon)) { GotoPoint(pt); } else { IQueryResultContainer resultContainer = GetQueryResultContainer(); if (resultContainer == null) { MsgBox.ShowError("没有设置查询结果容器,无法进行查询。"); return; } AsyncQueryPlacements querydel = new AsyncQueryPlacements(QueryPlacements); resultContainer.BeginInvokeContiner.BeginInvoke(querydel, keys); } }
public QueryStatus(IQueryResultContainer qrc, object queryTarget) { QueryResultContainer = qrc; QueryTarget = queryTarget; }
private IQueryResultContainer GetQueryResultContainer() { IQueryResultContainer rstc = _mapControl.MapRuntime.QueryResultContainer; return(rstc); }