Class: HydroDynamic2D

HydroDynamic2D

二维水动力模型对象,基于真实数据驱动生成水动力模型,支持2种格式数据源:.tif文件(栅格) | .shp文件(矢量)
一般通过api.hydrodynamic2d调用其方法


<protected> new HydroDynamic2D()

See:

Methods


addByShp(data, fn)

添加一个或多个HydroDynamic2D二维水动力模型对象,添加的数据源为(.shp)文件,注意:SHP文件必需是投影坐标系(PCS),同时单位是米。
注意:使用shp方式来添加二维水动力模型对象,执行update()更新方法时需使用.dat类型文件,同时dat文件只需要包含有水的网格面,确保dat文件尽量小,从而提高更新效率。详情参考shpDataFilePath字段描述

Parameters:
Name Type Description
data object | array

构造二维水动力模型对象HydroDynamic2D的数据对象,可以是Object类型或者Array类型,对于每一个HydroDynamic2D对象,支持以下属性:

  • id (string) HydroDynamic2D对象ID

  • groupId (string) 可选,Group分组

  • userData (string) 可选,用户自定义数据

  • offset (array) 可选,二维水动力模型的整体偏移,默认值:[0, 0, 0]

  • collision (boolean) 是否开启模型碰撞,默认值:false,注意:开启后会影响加载效率

  • displayMode (HydroDynamic2DStyle) 二维水动力模型的显示样式,取值范围:[0,1,2],0真实水样式(默认值),1热力图样式,2流场样式

  • waterMode (WaterMode) 真实水样式的水面材质类型,取值范围:[0,1,2],默认值:0,注意:水面材质支持和热力图样式叠加

  • waterColor (Color) 可选,水面颜色和透明度,注意:仅在displayMode=0时生效,支持四种格式,取值示例
    ,注意:此参数仅在displayMode设置为真实水样式时生效,如果不传则使用waterMode自带水材质颜色

  • waveBrightness (number) 可选,水波纹的显示亮度,取值范围:[0~1000],值越大亮度越高水波纹越明显,默认值:1

  • depthRange (array) 可选,二维水动力模型水深对应的数值区间,如果不传则系统会自动计算并使用dat数据的水深范围

  • alphaMode (number) 透明模式,取值:[0,1],0 : 使用colors调色板的不透明度值 1 : 使用dat数据包含的水深字段自动控制不透明度,默认值:1

  • alphaGradientDepthRange (array) 边缘羽化的水深范围,默认值:[0,2],单位:米,对应的alpha区间为[0,1],注意:仅在alphaMode=1时生效

  • arrowColor (Color) 箭头颜色和透明度,支持四种格式,取值示例

  • arrowTiling (number) 箭头平铺系数

  • arrowDisplayMode (number) 箭头显示模式,取值范围:[0,1],0默认样式(受arrowColor参数影响),1热力样式(受arrowColors调色板参数影响),默认值:0

  • arrowAlphaMode (number) 箭头透明度模式,仅在arrowDisplayMode=0时生效,取值:[0,1],0使用arrowColor的透明度,1使用调色板的透明度,默认值:0

  • arrowColors (object) 箭头颜色调色板,仅在arrowDisplayMode=1时生效,河道箭头热力样式下的调色板配色对象,包含颜色渐变控制、无效像素颜色和调色板区间数组

    gradient (boolean) 是否渐变

    invalidColor (Color) 无效像素点的默认颜色,默认白色

    colorStops (array) 调色板对象数组,每一个对象包含热力值和对应颜色值,结构示例:[{"value":0, "color":[0,0,1,1]}],每一个调色板对象支持以下属性:


    color (Color) 值对应的调色板颜色,注意arrowDisplayMode=1时,此颜色值的透明度生效

    value (number) 值

  • alphaComposite (boolean) 是否使用混合透明度,默认:true

  • rippleDensity (number) 可选,水波纹辐射强度,默认值:1

  • rippleTiling (number) 可选,水波纹辐射平铺系数,默认值:1

  • speedRange (array) 可选,流速范围,默认值:[0.1,3]

  • speedFactor (number) 可选,速度因子,控制水波纹或者粒子的速度,默认值:1

  • flowThreshold (array) 可选,水浪效果漫延的深度区间范围,区间外不生成浪头效果,默认值:[0.1,0.4]

  • crestWaterSpeedRange (array) 可选,水浪效果漫延的流速区间范围,默认值:[0,1],注意:和深度区间表现为叠加的效果,区间内的水流速度值越大浪头越来越明显

  • shpFilePath (string) 添加二维水动力模型整体范围的shp文件路径,取值示例:"C:/shpFile/xxx.shp"。注意:此shp文件包含水动力模型所有网格的范围,类型为Polygon,坐标系必须是PCS类型,单位是米,同时shp文件属性表字段必须包含ID和Elev两个字段:ID是网格ID,int类型;Elev是网格的高程值,double类型,单位是米

  • shpDataFilePath (string) 可选参数,仅在update()方法执行生效。更新二维水动力模型时包含水面网格的dat类型文件路径,取值示例:"C:/datFile/xxx.dat"。注意:dat文件是一种二进制文件,它提取了某一时刻包含的所有水面网格的信息,并把这些信息依次写入了二进制文件dat,一个水面网格信息包含如下一组四个值:id,h,u,v。id对应shp属性表ID字段(int类型),h是网格对应的水深(double类型,单位是米),uv是流速和流向(double类型,单位米/秒,u朝东,v朝北)。

  • updateTime (number) 可选参数,更新动画的插值时间,注意:仅update()更新方法执行时生效,默认值:1s

  • arrowVisibleDistance (number) 可选参数,动态箭头显示的最大距离,单位:米

  • dynamicArrow (object) 可选参数,动态箭头的配置参数对象

    numArrows (number) 箭头数量

    speedFactor (number) 速度因子

    sizeScale (number) 尺寸缩放因子

  • colors (object) 二维水动力模型自定义调色板对象,包含颜色渐变控制、无效像素颜色和调色板区间数组

    gradient (boolean) 是否渐变

    invalidColor (Color) 无效像素点的默认颜色,默认白色

    colorStops (array) 调色板对象数组,每一个对象包含热力值和对应颜色值,结构示例:[{"value":0, "color":[0,0,1,1]}],每一个调色板对象支持以下属性:


    color (Color) 值对应的调色板颜色,注意alphaMode=0时,此颜色值的透明度生效

    value (number) 值

fn function

可选的回调函数,请参考二次开发:异步接口调用方式


addByTif(data, fn)

添加一个或多个HydroDynamic2D二维水动力模型对象,数据源为.tif文件。

Parameters:
Name Type Description
data object | array

构造二维水动力模型对象HydroDynamic2D的数据对象,可以是Object类型或者Array类型,对于每一个HydroDynamic2D对象,支持以下属性:

  • id (string) HydroDynamic2D对象ID

  • groupId (string) 可选,Group分组

  • userData (string) 可选,用户自定义数据

  • bbox (array) 可选,二维水动力模型的包围盒范围,格式:[minX,minY,minZ,maxX,maxY,maxZ],数组元素类型:[任意浮点数]

  • offset (array) 可选,二维水动力模型的整体偏移,默认值:[0, 0, 0]

  • dataSize (array) 可选,二维水动力模型的数据分辨率,取值示例:[X,Y]

  • updateTime (number) 更新动画的插值时间,注意:参数仅update()更新方法执行时生效

  • waterDepth (string) 必选,二维水动力模型tif数据文件路径(水深文件tif),取值示例:"C:/tifFile/xxx1.tif",注意:waterDepth、flowField和dem的三个tif文件分辨率必须保持一致

  • flowField (string) 可选,二维水动力模型tif数据文件路径(流速流向文件tif),取值示例:"C:/tifFile/xxx2.tif",注意:waterDepth、flowField和dem的三个tif文件分辨率必须保持一致

  • dem (string) 可选,二维水动力模型tif数据文件路径(河道DEM文件tif),取值示例:"C:/tifFile/xxx3.tif",注意:waterDepth、flowField和dem的三个tif文件分辨率必须保持一致

  • collision (boolean) 是否开启模型碰撞,默认:false,注意:开启后会影响加载效率

  • displayMode (HydroDynamic2DStyle) 二维水动力模型的显示样式,取值范围:[0,1,2],0真实水样式(默认值),1热力图样式,2流场样式

  • waterMode (WaterMode) 真实水样式的水面材质类型,取值范围:[0,1,2],默认值:0,注意:水面材质支持和热力图样式叠加

  • waterColor (Color) 可选,水面颜色和透明度,注意:仅在displayMode=0时生效,支持四种格式,取值示例
    ,注意:此参数仅在displayMode设置为真实水样式时生效,如果不传则使用waterMode自带水材质颜色

  • waveBrightness (number) 可选,水波纹的显示亮度,取值范围:[0~1000],值越大亮度越高水波纹越明显,默认值:1

  • depthRange (array) 可选,二维水动力模型水深对应的数值区间,如果不传则系统会自动计算并使用tif数据的水深范围

  • alphaGradientDepthRange (array) 边缘羽化的水深范围,默认值:[0,2],单位:米,对应的alpha区间为[0,1],注意:仅在alphaMode=1时生效

  • alphaMode (number) 透明模式,取值:[0,1],0 : 使用colors调色板的不透明度值 1 : 使用tif数据包含的水深字段自动控制不透明度,默认值:1

  • arrowColor (Color) 箭头颜色和透明度,支持四种格式,取值示例

  • arrowTiling (number) 箭头平铺系数

  • arrowDisplayMode (number) 箭头显示模式,取值范围:[0,1],0默认样式(受arrowColor参数影响),1热力样式(受arrowColors调色板参数影响),默认值:0

  • arrowAlphaMode (number) 箭头透明度模式,仅在arrowDisplayMode=0时生效,取值:[0,1],0使用arrowColor的透明度,1使用调色板的透明度,默认值:0

  • arrowColors (object) 箭头颜色调色板,仅在arrowDisplayMode=1时生效,河道箭头热力样式下的调色板配色对象,包含颜色渐变控制、无效像素颜色和调色板区间数组

    gradient (boolean) 是否渐变

    invalidColor (Color) 无效像素点的默认颜色,默认白色

    colorStops (array) 调色板对象数组,每一个对象包含热力值和对应颜色值,结构示例:[{"value":0, "color":[0,0,1,1]}],每一个调色板对象支持以下属性:


    color (Color) 值对应的调色板颜色,注意arrowDisplayMode=1时,此颜色值的透明度生效

    value (number) 值

  • rippleDensity (number) 可选,水波纹辐射强度,默认值:1

  • rippleTiling (number) 可选,水波纹辐射平铺系数,默认值:1

  • speedRange (array) 可选,流速范围,默认值:[0.1,3]

  • speedFactor (number) 可选,速度因子,控制水波纹或者粒子的速度,默认值:1

  • flowThreshold (array) 可选,水浪漫延效果产生的深度区间,区间外不生成水浪效果,默认值:[0.1,0.4]

  • crestWaterSpeedRange (array) 可选,水浪漫延效果产生的流速区间,默认值:[0.2, 0.6],注意:和深度区间表现为叠加的效果,区间内的水流速度值越大浪头越来越明显,如果流速大于区间最大值则和最大值的浪头效果一致。

  • colors (object) 二维水动力模型自定义调色板对象,包含颜色渐变控制、无效像素颜色和调色板区间数组

    gradient (boolean) 是否渐变

    invalidColor (Color) 无效像素点的默认颜色,默认白色

    colorStops (array) 调色板对象数组,每一个对象包含热力值和对应颜色值,结构示例:[{"value":0, "color":[0,0,1,1]}],每一个调色板对象支持以下属性:


    color (Color) 值对应的调色板颜色,注意alphaMode=0时,此颜色值的透明度生效

    value (number) 值

fn function

可选的回调函数,请参考二次开发:异步接口调用方式

Example
请求数据结构示例 
        [{
        "id": "hdm",
        "displayMode": 0,
        "waterMode": 0,
        "alphaMode": 1,
        "depthRange": [0, 3],
        "waterDepth":"d:\\waterDepth.tif",
        "flowField":"d:\\flowField.tif",
        "dem":"d:\\dem.tif",
        "colors": {
            "gradient": true,
            "invalidColor": [0, 0, 0, 1],
            "colorStops": [
                {
                    "value": 0,
                    "color": [0, 0, 1, 1]
                },
                {
                    "value": 0.25,
                    "color": [0, 1, 1, 1]
                },
                {
                    "value": 0.5,
                    "color": [0, 1, 0, 1]
                },
                {
                    "value": 0.75,
                    "color": [1, 1, 0, 1]
                },
                {
                    "value": 1,
                    "color": [1, 0, 0, 1]
                }
            ]
        }] 

clear(fn)

删除场景中所有的HydroDynamic2D

Parameters:
Name Type Description
fn function

可选的回调函数,请参考二次开发:异步接口调用方式


delete(ids, fn)

删除一个或多个HydroDynamic2D对象

Parameters:
Name Type Description
ids string | array

要删除的HydroDynamic2D对象的ID或者ID数组(可以删除一个或者多个)

fn function

可选的回调函数,请参考二次开发:异步接口调用方式


focus(ids, distance, flyTime, rotation, fn)

自动定位到合适的观察距离

Parameters:
Name Type Description
ids string | array

HydroDynamic2D对象的ID或者ID数组

distance number

可选参数,观察点距离目标点(被拍摄物体)的距离,取值范围:[0.01~任意正数],如果设置为0或者不设置,系统自动计算

flyTime number

可选参数,相机飞行的时间,取值范围:[0~任意正数],单位:秒,默认值2秒

rotation array

可选参数,相机旋转的欧拉角:[Pitch,Yaw,Roll],数组元素类型:(number),取值范围:Pitch[-90~90] Yaw[-180~180] Roll[0]

fn function

可选的回调函数,请参考二次开发:异步接口调用方式


get(ids, fn)

根据ID获取HydroDynamic2D的详细信息

Parameters:
Name Type Description
ids string | array

要获取的HydroDynamic2D对象ID或者ID数组(可以获取一个或者多个)

fn function

可选的回调函数,请参考二次开发:异步接口调用方式


hide(ids, fn)

隐藏HydroDynamic2D

Parameters:
Name Type Description
ids string | array

HydroDynamic2D对象的ID或者ID数组

fn function

可选的回调函数,请参考二次开发:异步接口调用方式


show(ids, fn)

显示HydroDynamic2D

Parameters:
Name Type Description
ids string | array

HydroDynamic2D对象的ID或者ID数组

fn function

可选的回调函数,请参考二次开发:异步接口调用方式


update(data, fn)

修改一个或多个HydroDynamic2D对象

Parameters:
Name Type Description
data object | array

HydroDynamic2D对象或者数组,以下属性支持更新

  • id (string) 根据HydroDynamic2D对象的ID更新以下属性

  • updateTime (number) 更新动画的插值时间,注意:仅update()更新方法执行时生效,默认值:1s

  • shpDataFilePath (string) 更新二维水动力模型时包含水面网格的dat类型文件路径,取值示例:"C:/datFile/xxx.dat"。注意:dat文件是一种二进制文件,它提取了某一时刻包含的所有水面网格的信息,并把这些信息依次写入了二进制文件dat,一个水面网格信息包含如下一组四个值:id,h,u,v。id对应shp属性表ID字段(int类型),h是网格对应的水深(double类型,单位是米),uv是流速和流向(double类型,单位米/秒,u朝东,v朝北)。

fn function

可选的回调函数,请参考二次开发:异步接口调用方式