WhereClause

AMD: require(["geoscene/core/sql/WhereClause"], (WhereClause) => { /* 代码 */ });
ESM: import WhereClause from "@geoscene/core/core/sql/WhereClause";
Object: geoscene/core/sql/WhereClause
起始版本: GeoScene API for JavaScript 4.22

WhereClause 用于通过将提供的结果解析为一个值来提取满足指定条件的要素。sql.parseWhereClause() 方法返回一个 Promise,它解析为这个模块的一个实例。

属性列表

属性 类型 描述 Object
String[]更多信息

where 子句中使用的字段名称数组。

更多信息WhereClause
Boolean更多信息

如果解析的 where 子句满足标准化 sql 的要求,则返回 true

更多信息WhereClause

属性详细说明

fieldNames String[]

where 子句中使用的字段名称数组。可用于在查询图层时获取相应的字段。

示例代码:
// parse layer's definition expression into where clause object
sql.parseWhereClause(layer.definitionExpression, layer.fieldsIndex)
.then(function(clause){
  layer.queryFeatures({
    where: "1=1",
    // where clause object returns layer fields
    // use these fields to query features from the layer
    outFields: clause.fieldsNames
  }).then(function(results) {
   // process query results
  });
});
isStandardized Booleanreadonly

如果解析的 where 子句满足标准化 sql 的要求,则返回 true

方法列表

属性 返回值类型 描述 Object
Object更多信息

对要素执行 where 子句以生成值。

更多信息WhereClause
Boolean更多信息

根据 whereClause 测试要素的属性,如果测试通过则返回 true,否则返回 false

更多信息WhereClause

方法详细说明

calculateValue(feature){Object}

对要素执行 where 子句以生成值。 当 WhereClause 被用作简单表达式时使用它。例如,您可以使用表达式来收集统计值。

参数:
feature Object

检查 where 子句的功能。

返回值:
类型 描述
Object 根据提供的 where 子句检查功能后返回一个值。 如果提供的值未知,则返回 null
示例代码:
// calculate the grand total sales price of all features
featureLayer.queryFeatures().then(function(results){
  let total;
  const expression = "totalSales * totalPrice";
  sql.parseWhereClause(expression, layer.fieldsIndex)
  .then(function(whereClause){
    // check if the where clause meets requirements of standardized sql
    if (whereClause.isStandardized){
      features.forEach(function(feature){
        total += whereClause.calculateValue(feature)
      });
      console.log(total); // prints the total sales price of all features
    }
  });
});
testFeature(feature){Boolean}

根据 whereClause 测试要素的属性,如果测试通过则返回 true,否则返回 false

参数:
feature Object

针对 whereClause 进行测试的功能。

返回值:
类型 描述
Boolean 如果测试通过则返回 true,否则返回 false
示例代码:
sql.parseWhereClause("POPULATION > 100000", layer.fieldsIndex)
.then(function(clause){
  let testResult = clause.testFeature(new Graphic({
    attributes: {
      POPULATION: 300000
   }
 });
 console.log(testResult); // prints true
});

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.