@@ -11,6 +11,14 @@ import { FeatureAttachmentsService } from './FeatureAttachmentsService';
1111import { EditFeaturesService } from './EditFeaturesService' ;
1212import { DataFormat } from '../REST' ;
1313
14+ const FEATURE_SERVICE_MAP = {
15+ id : GetFeaturesByIDsService ,
16+ sql : GetFeaturesBySQLService ,
17+ bounds : GetFeaturesByBoundsService ,
18+ buffer : GetFeaturesByBufferService ,
19+ geometry : GetFeaturesByGeometryService
20+ }
21+
1422/**
1523 * @class FeatureService
1624 * @constructs FeatureService
@@ -235,6 +243,52 @@ export class FeatureService {
235243 return featureAttachmentsService . processAsync ( params , callback ) ;
236244 }
237245
246+ /**
247+ * @function FeatureService.prototype.getFeaturesCount
248+ * @description 获取要素数量。
249+ * @version 11.2.0
250+ * @param {GetFeaturesByIDsParameters|GetFeaturesByBoundsParameters|GetFeaturesByBufferParameters|GetFeaturesByGeometryParameters|GetFeaturesBySQLParameters } params - 查询参数类。
251+ * @param {RequestCallback } [callback] - 回调函数,该参数未传时可通过返回的 promise 获取结果。
252+ * @returns {Promise } Promise 对象。
253+ */
254+ getFeaturesCount ( params , callback ) {
255+ var me = this ;
256+ var newParams = { ...params , returnCountOnly : true , returnContent : true , returnFeaturesOnly : false } ;
257+ let queryType = Object . keys ( FEATURE_SERVICE_MAP ) . find ( ( type ) => {
258+ return newParams . CLASS_NAME . toLowerCase ( ) . includes ( type ) ;
259+ } ) ;
260+ var getFeaturesServiceBase = new FEATURE_SERVICE_MAP [ queryType ] ( me . url , {
261+ proxy : me . options . proxy ,
262+ withCredentials : me . options . withCredentials ,
263+ crossOrigin : me . options . crossOrigin ,
264+ headers : me . options . headers
265+ } ) ;
266+ return getFeaturesServiceBase . processAsync ( newParams , callback ) ;
267+ }
268+
269+ /**
270+ * @function FeatureService.prototype.getFeaturesDatasetInfo
271+ * @description 获取要素数据集信息。
272+ * @version 11.2.0
273+ * @param {GetFeaturesByIDsParameters|GetFeaturesByBoundsParameters|GetFeaturesByBufferParameters|GetFeaturesByGeometryParameters|GetFeaturesBySQLParameters } params - 查询参数类。
274+ * @param {RequestCallback } [callback] - 回调函数,该参数未传时可通过返回的 promise 获取结果。
275+ * @returns {Promise } Promise 对象。
276+ */
277+ getFeaturesDatasetInfo ( params , callback ) {
278+ var me = this ;
279+ var newParams = { ...params , returnDatasetInfoOnly : true , returnContent : true , returnFeaturesOnly : false } ;
280+ let queryType = Object . keys ( FEATURE_SERVICE_MAP ) . find ( ( type ) => {
281+ return newParams . CLASS_NAME . toLowerCase ( ) . includes ( type ) ;
282+ } ) ;
283+ var getFeaturesServiceBase = new FEATURE_SERVICE_MAP [ queryType ] ( me . url , {
284+ proxy : me . options . proxy ,
285+ withCredentials : me . options . withCredentials ,
286+ crossOrigin : me . options . crossOrigin ,
287+ headers : me . options . headers
288+ } ) ;
289+ return getFeaturesServiceBase . processAsync ( newParams , callback ) ;
290+ }
291+
238292 _processFormat ( resultFormat ) {
239293 return resultFormat ? resultFormat : DataFormat . GEOJSON ;
240294 }
0 commit comments