# 计算节点

nodes 属性是一个对象,nodes 的每一个属性是一个节点,属性名就是节点ID

"nodes": {
  "node-1": { // 节点ID
    "name": "io/extractVdataset", // 节点执行的操作
    "title": "北京小区", // 节点标题
    "settings": {  // 节点配置项
      "vdatasetId": "xxx",
      "where": "\"id\"<10"
    },
    "timeout": 1800 // 节点运行超时时间,单位秒,默认半小时
  }
}

所有操作及对应的 配置(settings) 的列表

# aggregation

# Dbscan

名称:

aggregation/Dbscan

描述:

使用 DBSCAN 算法进行聚类计算

输入端口:

0:{vdataset} 点数据,其它类型的几何对象会计算其所有节点

输出端口:

0:{vdataset} 原始点数据附加 cluster、dbscan 属性(原始数据若有同名属性会尝试添加 _x 后缀)

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
maxDistance - Number 1000 聚类点的最大距离,单位米
minPoints - Number 3 构成聚类的最少点数量

# GridGroup

名称:

aggregation/GridGroup

描述:

聚合到格网

输入端口:

0:{vdataset}

输出端口:

0:{vdataset}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
groupField - String - 需要聚合的字段
groupMethod sum | mean | median | mode | min | max | std | count String sum 聚合的方法
cellType square | point | hex | triangle String square 格网的单元格类型
cellSize - Number 10000 格网的间距,单位米

# Kmeans

名称:

aggregation/Kmeans

描述:

使用 k-means 算法进行聚类计算

输入端口:

0:{vdataset} 点数据,其它类型的几何对象会计算其所有节点

输出端口:

0:{vdataset} 原始点数据附加 cluster 属性(原始数据若有同名属性会尝试添加 _x 后缀)

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
clusters - Number 生成聚类的数量,如不指定将根据点的数量计算 Math.sqrt(points)

# calc

# Area

名称:

calc/Area

描述:

计算面积,单位平方米

输入端口:

0:{vdataset} 数据

输出端口:

0:{vdataset}

配置(settings):

# Length

名称:

calc/Length

描述:

计算长度,单位米

输入端口:

0:{vdataset} 数据

输出端口:

0:{vdataset}

配置(settings):

# combine

# Append

名称:

combine/Append

描述:

追加数据 B 到数据 A

输入端口:

0:{vdataset} 数据A
1:{vdataset} 数据B

输出端口:

0:{vdataset}

配置(settings):

# Join

名称:

combine/Join

描述:

对数据 A 和 数据 B 执行 join 操作

输入端口:

0:{vdataset} 数据A
1:{cdataset} 数据B,连接的数据不需要有空间信息,为普通数据集

输出端口:

0:{vdataset}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
fieldA - String - 用于连接的数据 A 的字段
fieldB - String - 用于连接的数据 B 的字段
method inner | outer String inner 连接的方法

# convert

# AddAttr

名称:

convert/AddAttr

描述:

添加一个属性字段并赋值

输入端口:

0:{vdataset}

输出端口:

0:{vdataset}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
field - String - 添加的属性字段名称
type double | float | int | bigint | bool String double 添加的属性字段类型
exp - String - 字段值的表达式,支持 JavaScript 语法和属性值引用,如 "Math.sqrt(${foo}) + ${bar}"

# AttrNumberToText

名称:

convert/AttrNumberToText

描述:

将某个数值型属性值转为文本型

输入端口:

0:{vdataset}

输出端口:

0:{vdataset}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
field - String - 需要转换的属性字段
toFixed - Number 0 保留的小数位数

# AttrTextToNumber

名称:

convert/AttrTextToNumber

描述:

将某个文本型属性值转为数值型

输入端口:

0:{vdataset}

输出端口:

0:{vdataset}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
field - String - 需要转换的属性字段
numberType double | float | long | int String double 转为数值的类型

# DropAttrs

名称:

convert/DropAttrs

描述:

丢弃某些属性字段

输入端口:

0:{vdataset}

输出端口:

0:{vdataset}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
fields - Array - 需要丢弃的属性字段

# filter

# AttrFilter

名称:

filter/AttrFilter

描述:

对某个属性值进行过滤,只保留满足条件的数据

输入端口:

0:{vdataset}

输出端口:

0:{vdataset}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
field - String - 属性字段
operator = | > | < | >= | <= | != | in | !in String = 过滤的操作
value - Any - 属性值

# TopN

名称:

filter/TopN

描述:

过滤某个属性值最大或最小的不超过 N 个对象

输入端口:

0:{vdataset}

输出端口:

0:{vdataset}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
field - String - 排序的字段
sort desc | asc String desc 过滤的操作
n - Number 10 过滤的数量

# interpolate

# Contour

名称:

interpolate/Contour

描述:

插值生成等高线

输入端口:

0:{vdataset}

输出端口:

0:{vdataset}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
field - String - 等高线的高程字段
breaks - Array - 等高线的高程值
cellSize - Number 10000 插值点的间距,单位米
polygonize - Boolean false 是否将等高线构造成多边形

# IDW

名称:

interpolate/IDW

描述:

反距离加权法插值

输入端口:

0:{vdataset}

输出端口:

0:{vdataset}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
field - String - 插值计算的属性字段
cellType square | point | hex | triangle String square 插值的单元格类型
cellSize - Number 10000 插值点的间距,单位米
weight - Number 1 距离的影响权重

# KernelDensity

名称:

interpolate/KernelDensity

描述:

核密度估计插值

输入端口:

0:{vdataset}

输出端口:

0:{vdataset}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
weightField - String - 用作权重的属性字段,如不设置相当于所有对象权重均相同
kernel gaussian | quartic | epanechnikov String gaussian 核函数
cellType square | point | hex | triangle String square 格网的单元格类型
cellSize - Number 10000 格网的间距,单位米
searchRadius - Number cellSize 搜索半径,单位米

# io

# ExtractCdataset

名称:

io/ExtractCdataset

描述:

从 Cdataset 提取数据

输出端口:

0:{cdataset}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
cdatasetId - String - 数据集 ID
where - String - 查询的条件
limit - Number 0 限制提取的数据量,如小于等于零则不作限制
batch - Number 100 每批提取的数据量

# ExtractVdataconnector

名称:

io/ExtractVdataconnector

描述:

从 Vdataconnector 提取数据

输出端口:

0:{vdataset}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
vdataconnectorId - String - 数据集 ID
filters - Object - 属性查询的条件,不同的 Connector 可以有不同的实现
geom - Object - 查询的几何对象,GeoJSON 格式
limit - Number 0 限制提取的数据量,如小于等于零则不作限制

# ExtractVdataset

名称:

io/ExtractVdataset

描述:

从 Vdataset 提取数据

输出端口:

0:{vdataset}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
vdatasetId - String - 数据集 ID
where - String - 查询的条件
geom - Object - 查询的几何对象,GeoJSON 格式
limit - Number 0 限制提取的数据量,如小于等于零则不作限制
batch - Number 100 每批提取的数据量

# ExtractVdataconnector

名称:

io/ExtractVdataconnector

描述:

从 Vdataconnector 提取数据

输出端口:

0:{vdataset}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
vdataconnectorId - String - 数据集 ID
where - String - 查询的条件
geom - Object - 查询的几何对象,GeoJSON 格式
limit - Number 0 限制提取的数据量,如小于等于零则不作限制
batch - Number 100 每批提取的数据量

# ExtractVdatastream

名称:

io/ExtractVdatastream

描述:

从 Vdatastream 提取数据

输出端口:

0:{vdataset}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
VdatastreamId - String - 数据集 ID
where - String - 查询的条件
geom - Object - 查询的几何对象,GeoJSON 格式
limit - Number 0 限制提取的数据量,如小于等于零则不作限制
batch - Number 100 每批提取的数据量

# SaveCdataset

名称:

io/SaveCdataset

描述:

保存 cdataset 到数据库中

输入端口:

0:{cdataset}

输出端口:

0:{kvs}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
title - String - 数据集标题

# SaveVdataset

名称:

io/SaveVdataset

描述:

保存 vdataset 到数据库中

输入端口:

0:{vdataset}

输出端口:

0:{kvs}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
title - String - 数据集标题

# ml

# GradientBoosting

名称:

ml/GradientBoosting

描述:

对数据进行梯度提升机器学习建模

输入端口:

0: {cdataset,vdataset}
1: {cdataset,vdataset}

输出端口:

0: {cdataset}
1: {json}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
yField - String - 目标字段
xFields - Array - 特征字段
outFields - Array - 需要输出的特征字段,如果为空数组则输出 ID 和 yField 字段

# RandomForest

名称:

ml/RandomForest

描述:

对数据进行随机森林机器学习建模

输入端口:

0: {cdataset,vdataset}
1: {cdataset,vdataset}

输出端口:

0: {cdataset}
1: {json}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
yField - String - 目标字段
xFields - Array - 特征字段
outFields - Array - 需要输出的特征字段,如果为空数组则输出 ID 和 yField 字段

# overlay

# Clip

名称:

overlay/Clip

描述:

用数据 B 去裁剪数据 A 输出与其重叠的部分

输入端口:

0:{vdataset} 数据A
1:{vdataset} 数据B

输出端口:

0:{vdataset}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
scaleFields - Array [] 需要按面积或长度比例重新计算的字段,比如一个区域的人口,在裁剪区域后就需要按比例计算剩余的人口

# Erase

名称:

overlay/Erase

描述:

用数据 B 去擦除数据 A 与其重叠的部分后输出

输入端口:

0:{vdataset} 数据A
1:{vdataset} 数据B

输出端口:

0:{vdataset}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
scaleFields - Array [] 需要按面积或长度比例重新计算的字段,比如一个区域的人口,在擦除区域后就需要按比例计算剩余的人口

# stats

# AttrStats

名称:

stats/AttrStats

描述:

统计某个字段的属性值

输入端口:

0:{vdataset}

输出端口:

0:{Number}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
field - String - 用于计算的数值型字段
method sum | mean | median | mode | min | max | std | count String mean 统计的方法

# GiStar

名称:

stats/GiStar

描述:

用 Getis-Ord Gi\* 统计值进行插值

输入端口:

0:{vdataset}

输出端口:

0:{vdataset}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
field - String - 用于统计的属性字段
distance - Number 10000 距离当前距离多远的算作临近,相当于缓冲区距离,单位米
weightMethod fixed | inverse String mean 按距离计算权重的方法

# MoranIndex

名称:

stats/MoranIndex

描述:

计算莫兰指数

输入端口:

0:{vdataset}

输出端口:

0:{kvs}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
field - String - 用于计算的数值型字段
threshold - Number 10000 临界值
p - Number 2 p
binary - Boolean false 二进制
alpha - Number -1 初始化
standardization - Boolean true 标准化

# NearbyStats

名称:

stats/NearbyStats

描述:

统计临近对象的属性值,计算后赋值到当前对象

输入端口:

0:{vdataset}

输出端口:

0:{vdataset}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
field - String - 用于计算的数值型字段
method sum | mean | median | mode | min | max | std | count String mean 统计的方法
distance - Number 0 距离当前距离多远的算作临近,相当于缓冲区距离,单位米

# SpatialRelationStats

名称:

stats/SpatialRelationStats

描述:

根据两者的空间关系统计属性值,统计后赋值到当前对象

输入端口:

0:{vdataset}
1:{vdataset}

输出端口:

0:{vdataset}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
field - String - 用于计算的数值型字段
method sum | mean | median | mode | min | max | std | count String mean 统计的方法
relation intersects | contains | crosses | equals | overlaps | touches | within String intersects 统计的方法

# transform

# Buffer

名称:

transform/Buffer

描述:

缓冲区计算

输入端口:

0:{vdataset}

输出端口:

0:{vdataset}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
distance - Number 0 缓冲的尺寸,单位米

# Centroid

名称:

transform/Centroid

描述:

提取几何中心点

输入端口:

0:{vdataset}

输出端口:

0:{vdataset}

配置(settings):

# ChinaOffset

名称:

transform/ChinaOffset

描述:

根据中国的要求偏移坐标

输入端口:

0:{vdataset}

输出端口:

0:{vdataset}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
method wgs2gcj | bd2gcj | gcj2wgs | gcj2bd String wgs2gcj 偏移方法

# Dissolve

名称:

transform/Dissolve

描述:

将多个多边形融合为一个复合多边形,也可以指定一个属性字段按照相同属性进行融合

输入端口:

0:{vdataset}

输出端口:

0:{vdataset}

配置(settings):

属性名称 类型 是否必须 默认值 说明
field String - 用于融合的属性字段

# Explode

名称:

transform/Explode

描述:

将多部分组成的复合几何形状炸开为简单几何形状

输入端口:

0:{vdataset}

输出端口:

0:{vdataset}

配置(settings):

# Sector

名称:

transform/Sector

描述:

以点为圆心,向某个方向生成一个扇形区域

输入端口:

0:{vdataset}

输出端口:

0:{vdataset}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
radius - Number - 扇形区域的半径,单位米
bearing - Number - 方向角,北为 0 度,顺时针方向
angle - Number - 扇形区域的开口角度

# ServiceArea

名称:

transform/ServiceArea

描述:

以点数据为起点进行到达圈计算,如输入不为点数据则以几何中心为起点

输入端口:

0:{vdataset}

输出端口:

0:{vdataset}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
network - String - 计算使用的路网名称,可用路网名称可以通过 /api/routing/network/list 接口获取
distance - Number 1000 服务距离,单位米
concavity - Number 1 区域凹凸程度
limit - Number 100000 向外搜索节点的数量限制

# Simplify

名称:

transform/Simplify

描述:

简化几何形状

输入端口:

0:{vdataset}

输出端口:

0:{vdataset}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
tolerance - Number - 简化操作的容差值

# StandardEllipse

名称:

transform/StandardEllipse

描述:

生成标准差椭圆,用于描述数据在方向上的分布

输入端口:

0:{vdataset}

输出端口:

0:{vdataset}

配置(settings):

# Tesselate

名称:

transform/Tesselate

描述:

切割多边形为三角格网

输入端口:

0:{vdataset}

输出端口:

0:{vdataset}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
scaleFields - Array [] 需要按面积或长度比例重新计算的字段,比如一个区域的人口,在切割后就需要按比例计算剩余的人口

# TIN

名称:

transform/TIN

描述:

生成三角格网

输入端口:

0:{vdataset}

输出端口:

0:{vdataset}

配置(settings):

# Voronoi

名称:

transform/Voronoi

描述:

生成沃罗诺伊图(泰森多边形)

输入端口:

0:{vdataset}

输出端口:

0:{vdataset}

配置(settings):

# web

# TransformGeomAPI

名称:

overlay/TransformGeomAPI

描述:

 用于转化几何对象的 API

 注意,在配置中可以使用的变量有:${x} | ${y} | ${geojson} | ${wkt}

输入端口:

0:{vdataset}

输出端口:

0:{vdataset}

配置(settings):

属性名称 可选值 类型 是否必须 默认值 说明
url - String - 外部 API 的地址
method GET | POST String - GET 请求的方法
responseType json | text String json 返回的结果类型
responseEncoding - String utf8 返回的结果编码
headers - Object - 额外的请求头
data - Object - 通过请求体发送的数据
responseParser - String "function parse(data){return data;}" 用于解析响应数据的 JavaScript 函数,函数名必须为 parse,返回值为 GeoJSON 格式的几何对象

示例 settings:

{
"url": "https://api.mapbox.com/isochrone/v1/mapbox/walking/${x},${y}?contours_minutes=10&access_token=pk.eyJ1IjoibGFicy1zYW5kYm94IiwiYSI6ImNrMTZuanRmZDA2eGQzYmxqZTlnd21qY3EifQ.Q7DM5HqE5QJzDEnCx8BGFw",
"responseParser": "function parse(data){return data['features'][0];}",
}