@@ -21,6 +21,7 @@ import { ServerGeometry } from './ServerGeometry';
2121 * @param {Array.<string> } options.datasetNames - 数据集集合中的数据集名称列表。
2222 * @param {string } [options.attributeFilter] - 几何查询属性过滤条件。
2323 * @param {Array.<string> } [options.fields] - 查询结果返回字段。默认返回所有字段。
24+ * @param {string } [options.orderBy] - 查询排序的字段,orderBy 的字段须为数值型的。
2425 * @param {SpatialQueryMode } [options.spatialQueryMode=SpatialQueryMode.CONTAIN] - 空间查询模式。
2526 * @param {boolean } [options.returnContent=true] - 是否直接返回查询结果。
2627 * @param {boolean } [options.returnFeaturesOnly=false] - 是否仅返回要素信息。当 returnContent 为 true 时设置有效。
@@ -67,6 +68,20 @@ export class GetFeaturesByGeometryParameters extends GetFeaturesParametersBase {
6768 * @description 空间查询模式。
6869 */
6970 this . spatialQueryMode = SpatialQueryMode . CONTAIN ;
71+
72+ /**
73+ * @member {string} [GetFeaturesByGeometryParameters.prototype.orderBy]
74+ * @description 查询排序的字段,orderBy 的字段须为数值型的。
75+ * 相当于 SQL 语句中的 ORDER BY 子句,其格式为:ORDER BY <列名>或ORDER BY <列名 排序规则>。
76+ * 列名即属性表中每一列的名称,列又可称为属性,在 SuperMap 中又称为字段。
77+ * 排序规则即按字段的升序或降序排序,asc 表示升序,desc 表示降序,不指定排序规则按升序排序。
78+ * 对单个字段排序时,该字段的用法为 orderBy = "字段名",升序为orderBy = "字段名 asc";降序为 orderBy = "字段名 desc";
79+ * 对多个字段排序时,字段之间以英文逗号进行分割,用法为 orderBy = "字段名1, 字段名2 asc, 字段名2 desc"。
80+ * 例如,在一个国家数据集中,有两个字段,字段名分别为“SmArea”和“pop_1994”,分别表示国家的面积和1994年的各国的人口数量,
81+ * 如果要按照各国人口数量对记录进行排序,可以设置 orderBy = "pop_1994";
82+ * 如果要以面积降序和人口升序进行排序, 设置 orderBy = "SmArea desc, pop_1994 asc"。
83+ */
84+ this . orderBy = null ;
7085 Util . extend ( this , options ) ;
7186
7287 this . CLASS_NAME = 'SuperMap.GetFeaturesByGeometryParameters' ;
@@ -92,6 +107,7 @@ export class GetFeaturesByGeometryParameters extends GetFeaturesParametersBase {
92107 me . attributeFilter = null ;
93108 me . spatialQueryMode = null ;
94109 me . getFeatureMode = null ;
110+ me . orderBy = null ;
95111 }
96112
97113 /**
@@ -110,10 +126,15 @@ export class GetFeaturesByGeometryParameters extends GetFeaturesParametersBase {
110126 geometry : geometry ,
111127 spatialQueryMode : params . spatialQueryMode
112128 } ;
113- if ( params . fields ) {
129+ if ( params . fields || params . orderBy ) {
114130 filterParameter = new FilterParameter ( ) ;
115131 filterParameter . name = params . datasetNames ;
116- filterParameter . fields = params . fields ;
132+ if ( params . fields ) {
133+ filterParameter . fields = params . fields ;
134+ }
135+ if ( params . orderBy ) {
136+ filterParameter . orderBy = params . orderBy ;
137+ }
117138 parasByGeometry . queryParameter = filterParameter ;
118139 }
119140 if ( params . attributeFilter ) {
@@ -138,7 +159,6 @@ export class GetFeaturesByGeometryParameters extends GetFeaturesParametersBase {
138159 if ( params . aggregations ) {
139160 parasByGeometry . aggregations = params . aggregations ;
140161 }
141-
142162 return Util . toJSON ( parasByGeometry ) ;
143163 }
144164}
0 commit comments