Пример #1
0
 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));
 }
Пример #2
0
        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);
        }
Пример #3
0
        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);
            }
        }
Пример #4
0
 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));
         }
     }
 }
Пример #5
0
        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);
            }
        }
Пример #6
0
 public QueryStatus(IQueryResultContainer qrc, object queryTarget)
 {
     QueryResultContainer = qrc;
     QueryTarget          = queryTarget;
 }
Пример #7
0
        private IQueryResultContainer GetQueryResultContainer()
        {
            IQueryResultContainer rstc = _mapControl.MapRuntime.QueryResultContainer;

            return(rstc);
        }