Class: Polygon

Polygon

Polygon 相关的操作, 一般通过api.polygon调用其方法




下面Example代码的运行效果图:

1. 最简单的Polygon

let coords1 = [[872.16, -9485.86, 5.8], [864.77, -9196.58, 5.7], [624.34, -9209.29, 6.05], [482.58, -9373.57, 7.38]];

2. 带2个洞的Polygon

let coords2 = [
        [[9665.22, -11366.88, 5.7], [9765.4, -4511.22, 5.7], [4155.2, -4036.94, 5.7], [3098, -11010.32, 5.7], [6445.79, -12717.28, 6.78]],
        [[8706.9, -9457.89, 5.7], [8824.84, -8055.4, 6.64], [7619.37, -8859.47, 6.72]],
        [[5744.8, -7795.59, 5.7], [6205.21, -5724.74, 5.7], [4460.01, -5839.38, 6.05], [3966.28, -7712.46, 7.17]]
    ];

3. 2个Part的Polygon,每个Polygon有一个或多个洞

let coords3 = [
        //part1
        [
            [[9665.22, -11366.88, 5.7], [9765.4, -4511.22, 5.7], [4155.2, -4036.94, 5.7], [3098, -11010.32, 5.7], [6445.79, -12717.28, 6.78]],
            [[8706.9, -9457.89, 5.7], [8824.84, -8055.4, 6.64], [7619.37, -8859.47, 6.72]],
            [[5744.8, -7795.59, 5.7], [6205.21, -5724.74, 5.7], [4460.01, -5839.38, 6.05], [3966.28, -7712.46, 7.17]]
        ],

        //part2
        [
            [[-4477.25, -4353.11, 5.7], [-1803.2, -6744.65, 5.7], [-562.18, -4590.14, 5.7], [-2271.85, -2595.33, 5.7]],
            [[-2867.3, -4342.53, 5.7], [-2381.34, -5043.33, 5.7], [-1723.21, -4566.1, 6.25], [-1938.83, -3757.59, 5.7]]
        ]
    ];


<protected> new Polygon()

See:

Extends

Methods


add(data, fn)

添加一个或多个Polygon对象

如何获取自定义材质路径(material)见如下动图:

如何获取自定义材质包含的参数请调用如下方法:
let res = await __g.misc.getMaterial(material);
let params = res.data[0].params;

Parameters:
Name Type Description
data object | array

数据结构,支持对象或数组,对于每一个对象支持以下属性:

  • id (string) 字符串类型的ID

  • groupId (string) 可选,Group分组

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

  • color (Color) 颜色值,支持四种格式,取值示例

  • coordinates (array) 多边形坐标数组,取值示例

  • coordinateType (number) 坐标系类型,取值范围:0为Projection类型,1为WGS84类型,2为火星坐标系(GCJ02),3为百度坐标系(BD09),默认值:0

  • range (array) 可视范围: [近裁距离, 远裁距离],取值范围: [任意负值, 任意正值]

  • frameColor (Color) 边框颜色,支持四种格式,取值示例

  • frameThickness (number) 边框厚度,单位:米。(当frameThickness设置为0的时候,不创建轮廓)

  • depthTest (boolean) 是否做深度检测,默认为true,true会被遮挡,false不会被遮挡

  • intensity (number) 亮度,取值范围:[0~1000],注:目前仅单色模式下生效[style:PolygonStyle.SingleColor]

  • style (PolygonStyle) 多边形样式,单色/圆点/体积/渐变/波纹/贴地等,取值范围:[0~10],详情参考 PolygonStyle

  • material (string) 可选参数,自定义材质路径,即资源库PAK文件里材质文件的路径,设置自定义材质参数后style相关参数会失效

  • scalarParameters (array) 可选参数,仅在设置自定义材质路径后生效,自定义材质数值类型参数,包含name/value键值对的数组,其中value为数值,格式示例:[{"name":"不透明度","value":0.5},{"name":"UV重复","value":1.0}]

  • vectorParameters (array) 可选参数,仅在设置自定义材质路径后生效,自定义材质矢量类型参数,包含name/value键值对的数组,其中value为数组,格式示例:[{"name":"color1","value":[1,1,1,1]},{"name":"color2","value":[1,0,0,1]}]

fn function

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


clear(fn)

删除场景中所有的Polygon

Parameters:
Name Type Description
fn function

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


delete(ids, fn)

删除一个或多个Polygon对象

Parameters:
Name Type Description
ids string | array

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

fn function

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


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

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

Parameters:
Name Type Description
ids string | array

Polygon对象的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获取Polygon的详细信息

Parameters:
Name Type Description
ids string | array

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

fn function

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

Example
Polygon的详细信息
{
            "id":	"polygon1",
            "groupId":	"",
            "userData":	"",
            "depthTest":	0,
            "color":	[0.000000, 0.000000, 1.000000, 1.000000],
            "style":	0,
            "brightness":	1.000000
        }

glow(ids, duration, fn)

闪烁

Parameters:
Name Type Description
ids string | array

Polygon的ID或者ID数组

duration any

闪烁持续时间,取值说明,-1一直闪烁 0永不闪烁 >0按指定时间间隔闪烁,单位秒

fn function

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


hide(ids, fn)

隐藏Polygon

Parameters:
Name Type Description
ids string | array

Polygon对象的ID或者ID数组

fn function

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


highlight(ids, fn)

高亮

Parameters:
Name Type Description
ids string | array

Polygon的ID或者ID数组

fn function

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


setColor(id, newVal, fn)

设置颜色

Parameters:
Name Type Description
id string

Polygon的ID

newVal Color

新颜色值,支持四种格式,取值示例

fn function

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


setCoordinates(id, newVal, fn)

设置坐标

Parameters:
Name Type Description
id string

Polygon的ID

newVal array

新值

fn function

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


setDepthTest(id, newVal, fn)

设置是否做深度检测

Parameters:
Name Type Description
id any

Polygon的ID

newVal boolean

是否做深度检测

fn function

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


show(ids, fn)

显示Polygon

Parameters:
Name Type Description
ids string | array

Polygon对象的ID或者ID数组

fn function

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


stopHighlight(ids, fn)

停止高亮

Parameters:
Name Type Description
ids string | array

Polygon的ID或者ID数组

fn function

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


update(data, fn)

修改一个或多个Polygon对象

Parameters:
Name Type Description
data object | array

数据结构,请参考add方法

fn function

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


updateBegin()

用于批量多次修改对象的属性

在开始修改之前调用updateBegin,然后可以多次调用setXXX方法,最后调用updateEnd提交修改更新数据
注意:
updateBegin不是异步调用,不需要await,也没有回调函数参数

Inherited From:
Overrides:
Example
__g.xxx.updateBegin();
for (let i = 0; i < 1000; i++) {
     __g.xxx.setColor(i, Color.Yellow);
} 
__g.xxx.updateEnd(function () {
     log('update finished!');
});

updateEnd(fn)

用于批量多次修改对象的属性,与updateBegin配套使用
注意:
updateEnd是异步调用,可以用回调函数也可以await

Parameters:
Name Type Description
fn function

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

Inherited From:
Overrides: