I3SField 是cesiumjs中的一个用于表示I3S字段的接口。
interface I3SField {
    dataType: I3SAttributeType;
    componentType?: I3SAttributeType;
    name?: string;
    alias?: string;
    domain?: [number, number] | [string, string];
    range?: [number, number] | [string, string];
    rasterSize?: number;
    objectIdField?: boolean;
    definitionExpression?: string;
    cardinality?: I3SCardinalityType;
}
I3SField是I3S节点中表示记录属性的接口。相关概念详见I3S规范。
I3S节点典型的属性通常由一个或多个I3SField组成。
dataType: I3SAttributeType - 必需。表示字段的数据类型。参考I3SAttributeType
componentType: I3SAttributeType - 可选。表示字段的组件类型。例如,如果该字段为vector3,组件类型可以指定为float32。参考I3SAttributeType
name?: string - 可选。字段名称
alias?: string - 可选。字段别名
domain?: [number, number] | [string, string] - 可选。表示字段的值域。如果数据的类型是数值型,则使用形如[min, max]的数字范围。如果数据类型为字符串,则使用形如[min, max]的字符串范围。
range?: [number, number] | [string, string] - 可选。表示字段的映射范围。通常适用于将一组值映射为另一组值。例如,将颜色值从十六进制的字符串映射为RGBA颜色向量的标准。如果数据的类型是数值型,则使用形如[min, max]的数字范围。如果数据类型为字符串,则使用形如[min, max]的字符串范围。
rasterSize?: number - 可选。表示字段是栅格地图数据时的分辨率大小。通常,在数据中使用像素宽度来表示某些属性的值时使用。
objectIdField?: boolean - 可选。表示该字段是否为对象ID。如果是,则值需要保证唯一。
definitionExpression?: string - 可选。表示筛选数据时使用的过滤器表达式。
cardinality?: I3SCardinalityType - 可选。表示字段的基数类型。通常在数据中使用单值或向量时使用。参考I3SCardinalityType
var i3sField = {
    dataType: I3SAttributeType.Float32,
    componentType: I3SAttributeType.Float32,
    name: 'Elevation',
    alias: 'Height Above Ellipsoid',
    domain: [0, 5500],
    range: [0, 1],
    rasterSize: 16,
    objectIdField: true,
    definitionExpression: 'Elevation > 1000',
    cardinality: I3SCardinalityType.Scalar
}