Contour

等值线/面

new YS.Contour(ys, options)

生成等值线或等值面的空间分析类,基于turf.js
支持turf和3d-countour算法,
3d-countour算法可以生成等值面和等值线,turf只支持生成等值线;
3d-countour算法使用一维值数组,turf算法使用规则点阵数组;
3d-countour算法目前使用贝塞尔曲线平滑,平滑后可能会出现等值线交叉现象;
Name Type Description
ys YouScene youScene对象
options Object 对象有下面这些属性:
Name Type Default Description
name String 'contour' optional 等值线图层名称
isAddTree Boolean optional 等值线图层是否加入树
category String optional 等值线图层分组
maxHeight Number optional 等值线图层最大显示距离
minHeight Number optional 等值线图层最小显示距离
visible Boolean optional 等值线图层是否可见
Example:
var contour = new YS.Contour(ys, {
    name: '等值线测试'
});
contour.makeByD3({
    id: 'test',
    points: {
        values: getData2(),
        rows: 512,
        cols: 256,
        miniPoint: {
            x: 110,
            y: 25
        },
        xstep: 0.01,  *经度点距
        ystep: 0.01  *纬度点距
    },
    usePolygon: true, 
    useLine: true,
    bands: {
        gradient: [
                YS.Color.fromRGBA(0, 166, 0, 255),
                YS.Color.fromRGBA(229, 229, 0, 255),
                {r: 0.8, g: 0.8, b: 0.8, a: 1}
            ]
    },
    followSurface: false,
    numbers: [4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384],
    smooth: true
});
Demo:

Methods

clear()

清空所有已生成的等值线

destroy()

销毁

makeByD3(options)Promise

生成一份等值面,使用d3库
Name Type Description
options Object 参数
Name Type Default Description
id String optional 新生成等值面的id,可用于查找、删除等
points Object 格网数据
Name Type Description
values Array.<Number> 要生成等值线的规则格网点值,长度必须等于rows*cols
rows Number 规则格网的行数
cols Number 规则格网的列数
miniPoint XY 规则格网里最小的坐标点,单位度
xstep Number 经度方向上两点间距离,单位度
ystep Number 纬度方向上两点间距离,单位度
numbers Array.<Number> optional 要生成等值线的值域数组,numbers和threshold必须提供一种
threshold Object optional 要生成等值线的值域参数,和numbers只需提供一种
Name Type Description
from Number 等值线起始值,包含
to Number 等值线终止值,包含
step Number 两条等值线值的间差
usePolygon Boolean false optional 显示等值面
useLine Boolean true optional 显示等值线
smooth Boolean true optional 要不要平滑曲线
followSurface Boolean false optional 等值面/线是否贴地
width Number 2 optional 线宽
color RGBA Color.WHITE optional 线颜色 object = {r:1,g:1,b:1,a:1}
bands Object optional 等值面填充色,默认不填充;且usePolygon=false时不使用
Name Type Description
colors Array.<RGBA> optional 固定填充色数组,长度需要和值域一致,colors和gradient只需要一种
gradient Array.<RGBA> optional 等值面使用渐变色填充,最少两种颜色
Returns:

makeByTurf(options)Promise

生成一份等值线
Name Type Description
options Object 参数
Name Type Default Description
points Array.<XYZ> 要生成等值线的规则格网点,长度不能等于0
numbers Array.<Number> optional 要生成等值线的值域数组,numbers和threshold必须提供一种
threshold Object optional 要生成等值线的值域参数,和numbers只需提供一种
Name Type Description
from Number 等值线起始值,包含
to Number 等值线终止值,包含
step Number 两条等值线值的间差
smooth Boolean true optional 要不要用贝塞尔曲线平滑
followSurface Boolean false optional 是否生成贴地线,followSurface=true可能会比较慢
width Number 2 optional 线宽
color RGBA Color.WHITE optional 线颜色 object = {r:1,g:1,b:1,a:1}
Returns: