Exemple #1
0
        public static RecordSet QueryFeatures(LayerDescription activelayerdesc, QueryFilter qf, bool useTrueCurves)
        {
            QueryResultOptions queryResultOptions = new QueryResultOptions();

            queryResultOptions.Format = esriQueryResultFormat.esriQueryResultRecordSetAsObject;
            GeometryResultOptions geometryResultOptions = new GeometryResultOptions();

            geometryResultOptions.MaximumDeviation       = 0.0;
            geometryResultOptions.MaximumSegmentLength   = -1.0;
            geometryResultOptions.MaximumAllowableOffset = 0.0;
            if (useTrueCurves)
            {
                geometryResultOptions.DensifyGeometries = false;
            }
            else
            {
                geometryResultOptions.DensifyGeometries    = true;
                geometryResultOptions.GeneralizeGeometries = true;
            }
            activelayerdesc.LayerResultOptions = new LayerResultOptions
            {
                FormatValuesInResults     = true,
                GeometryResultOptions     = geometryResultOptions,
                IncludeGeometry           = true,
                ReturnFieldNamesInResults = true
            };
            QueryResult queryResult = MapServiceFidTests._mapservice.QueryFeatureData2(MapServiceFidTests.name, activelayerdesc, qf, queryResultOptions);

            return((RecordSet)queryResult.Object);
        }
Exemple #2
0
        public IFeatureCursor GetFeatures(IQueryFilter filter)
        {
            if (_dataset == null || _dataset._mapServer == null || _dataset._mapDescription == null)
            {
                return(null);
            }

            gView.Interoperability.AGS.Proxy.QueryFilter qFilter = ArcServerHelper.QueryFilter(filter, this);
            try
            {
                QueryResultOptions options = new QueryResultOptions();

                RecordSet rSet = _dataset._mapServer.QueryFeatureData(_dataset._mapDescription.Name, int.Parse(_id), qFilter);
                return(new FeatureCursor(rSet));
            }
            catch (Exception ex)
            {
                //if (ex.Message == "The requested capability is not supported." && filter is ISpatialFilter && String.IsNullOrEmpty(filter.WhereClause))
                //{
                //    try
                //    {
                //        MapServerIdentifyResult[] res =
                //        _dataset._mapServer.Identify(_dataset._mapDescription,
                //            null,
                //            ((gView.Interoperability.AGS.Proxy.SpatialFilter)qFilter).FilterGeometry,
                //            0,
                //            esriIdentifyOption.esriIdentifyAllLayers,
                //            new int[] { int.Parse(_id) });
                //    }
                //    catch (Exception e)
                //    {

                //    }
                //}
                throw new gView.Framework.UI.UIException("Can't query features for '" + this.Name + "'!", ex);
            }
        }