Class: GeoJSONLayer

GeoJSONLayer

GeoJSONLayer图层类,提供操作GeoJSONLayert图层符号化加载和操作相关的方法
一般通过api.geoJSONLayer调用其方法


new GeoJSONLayer()

protected

See:

Extends

Methods


add(option, fn)

从GeoJSON文件或者url下载链接加载GeoJSON并进行符号化展示

Parameters:
Name Type Description
option object

加载GeoJSON的配置项对象,包含以下属性

  • id (string) 必选,字符串类型唯一id

  • url (string) 二选一,GeoJSON文件本地磁盘路径或者对应的url地址

  • sourceJson (Object) 二选一,GeoJSON标准对象(JsonObject)

  • visible (boolean) 可选,设置图层加载后是否显示,默认:true

  • rotation (array) 旋转:[Pitch,Yaw,Roll],数组元素类型:(number),取值范围:[任意数值]

  • offset (array) 可选,基于原始位置的偏移量,默认值:[0,0,0]

  • range (array) 点的可视范围: [近裁距离, 远裁距离],默认值: [0, 10000],注意:此参数仅对point类型的GeoJSON生效

  • viewHeightRange (array) 可见高度范围:[最小可见高度, 远最大可见高度],默认值: [-1000000000, 1000000000]

  • needProject (boolean) 可选,是否进行投影转换,默认:true

  • textMarkerField (string) 可选,使用Geojson的属性字段显示文字标注

  • textRange (array) 可选,文字标注的可视范围: [近裁距离, 远裁距离],单位:米

  • onTerrain (boolean) 可选,设置图层加载后是否贴地,默认:false

  • collision (boolean) 是否开启碰撞,默认值:true

  • renderer (object) 必选,渲染器配置对象参数如下:

    style Polygon3DStyle 仅对Polygon3D渲染生效,设置Polygon3D的样式

    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]}]

    rendererType (RendererType) 渲染器类型,包含三种:简单渲染器、唯一值渲染器、分类渲染器

    type (VisualType) 控制显示的可视化类型枚举

    field (string) GeoJSON文件内的属性字段名称

    fieldType (FieldType) GeoJSON文件内的属性字段类型,枚举支持数值类型和字符串类型

    gradient (boolean) 颜色是否渐变

    defaultSymbol (object) 必选,默认符号化配置参数如下:

    symbolType (number) 符号化类型,0 simple-marker圆形点填充 1 simple-line线填充(注意:目前仅支持1px的线宽) 2 simple-fill面填充 3 polygon3d填充

    size (number) 可选,点的默认尺寸,仅针对simple-marker圆形填充生效;

    height (number) 可选,polygon3d的默认高度,仅针对polygon3d填充生效;

    color (array) 默认填充颜色

    outline (object) 默认轮廓线,包含线宽和颜色,注意:目前仅支持1px的线宽。对象结构示例:{width: 1,color: [1, 1, 1, 1]}

    uniqueValueInfos (array) 可选,唯一值渲染器配置数组,对象结构如下:

    value (any) field字段对应值

    symbol (object) 各唯一值对应的符号化配置对象,结构如下:

    color (Color) 可选,三选一,唯一值对应的颜色

    size (number) 可选,三选一,唯一值对应的尺寸

    height (number) 可选,三选一,唯一值对应的高度

    classBreakInfos (array) 可选,分类渲染器配置数组,对象结构如下:

    minValue (number) 区间最小值

    maxValue (number) 区间最大值

    symbol (object) 不同分类的符号化配置对象,结构如下:

    color (Color) 可选,二选一,区间值对应的颜色

    size (number) 可选,二选一,区间值对应的尺寸

    height (number) 可选,三选一,区间值对应的高度

    visualVariables (array) 简单渲染器支持根据字段属性控制颜色、尺寸和透明度的显示,参数如下:

    type (VisualType) 控制显示的可视化类型枚举

    field (string) GeoJSON文件内的属性字段名称

    fieldType (FieldType) GeoJSON文件内的属性字段类型,枚举支持数值类型和字符串类型

  • visibleRenderer (object) 可选,要素可见性渲染器配置对象,包含的参数结构如下:

    rendererType (RendererType) 渲染器类型:可见性渲染器

    field (string) GeoJSON文件内的属性字段名称

    fieldType (FieldType) GeoJSON文件内的属性字段类型,枚举支持数值类型和字符串类型

    defaultVisible (boolean) 全局要素默认是否可见,默认值:true 可见

    visibleValueInfos (array) 可选,分类渲染器配置数组,对象结构如下:

    value (any) 可选,field字段对应值

    minValue (number) 可选,区间最小值,注意:数值类型字段可以使用此属性

    maxValue (number) 可选,区间最大值,注意:数值类型字段可以使用此属性

    visible (boolean) 必选,根据字段值或区间控制要素块是否显隐

fn function

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

Example
请求参数示例
  
  //简单渲染器
  let simpleRenderer = {
            //渲染器类型
            rendererType: RendererType.SimpleRenderer,
            //默认符号化配置
            defaultSymbol: {
                //符号化类型枚举:0 simple-marker圆形点填充  1 simple-line线填充  2 simple-fill面填充 3 polygon3d填充
                symbolType: 3,
                //默认高度
                height: 10,
                //默认填充颜色
                color: [0, 0, 1, 1],
                //默认轮廓线
                outline: {
                    //线宽
                    width: 1,
                    //颜色
                    color: [1, 1, 1, 1],
                }
            },
            //简单渲染器支持根据字段属性控制颜色、尺寸和透明度的显示
            visualVariables: [{
                //控制可视化显示的类型: 颜色color、尺寸size、高度height和不透明度opacity
                type: VisualType.Height,
                //属性字段名称
                field: "hight",
                //属性字段类型
                fieldType: FieldType.Number,
            }]
        };

    //唯一值渲染器
    let uniqueValueRenderer = {
        //渲染器类型
        rendererType: RendererType.UniqueValueRenderer,
        //渲染字段名称
        field: "name",
        //属性字段类型
        fieldType: FieldType.String,
        //控制可视化显示的类型: 颜色color、尺寸size、高度height和不透明度opacity
        type: VisualType.Color,
        //默认符号化配置
        defaultSymbol: {
            //符号化类型枚举:0 simple-marker圆形点填充  1 simple-line线填充  2 simple-fill面填充 3 polygon3d填充
            symbolType: 2,
            //填充色
            color: [0, 1, 1, 1],
            //轮廓线
            outline: {
                //线宽
                width: 1,
                //颜色
                color: [1, 1, 1, 1]
            },
        },
        //根据颜色字段的唯一值进行符号化填充
        uniqueValueInfos: [{
            // 深圳湾体育馆填充为蓝色
            value: "深圳湾体育馆",
            symbol: {
                //填充色
                color: [0, 0, 1, 1]
            }
        }, {
            // 北京师大南山附属学校小学部填充为红色
            value: "北京师大南山附属学校小学部",
            symbol: {
                color: [1, 0, 0, 1]
            }
        }, {
            // 腾讯滨海大厦填充为绿色
            value: "腾讯滨海大厦",
            symbol: {
                color: [0, 1, 0, 1]
            }
        }, {
            // 科技第三幼儿园填充为黄色
            value: "科技第三幼儿园",
            symbol: {
                color: [1, 1, 0, 1]
            }
        }]
    };


    //分类渲染对应颜色
    let less25 = {
      color: [0,0,1,1]
    };

    let less50 = {
      color: [0,1,0,1]
    };

    let less75 = {
      color: [1,1,0,1]
    };

    let less100 = {
      color: [1,0,0,1]
    };

    //分类渲染器    
    let classBreaksRenderer = {
        rendererType: RendererType.ClassBreaksRenderer,
        field: "hight",
        //属性字段类型
        fieldType: FieldType.Number,
        //控制可视化显示的类型: 颜色color、尺寸size、高度height和不透明度opacity
        type: VisualType.Color,
        //默认符号化配置
        defaultSymbol: {
            //符号化类型枚举:0 simple-marker圆形点填充  1 simple-line线填充  2 simple-fill面填充 3 polygon3d填充
            symbolType: 2,
            //填充色
            color: [0, 1, 1, 1],
            //轮廓线
            outline: {
                //线宽
                width: 1,
                //颜色
                color: [1, 1, 1, 1]
            },
        },
        //根据hight字段的不同区间值使用不同的符号化配置
        classBreakInfos: [
            {
                minValue: 0,
                maxValue: 25,
                symbol: less25
            },
            {
                minValue: 25,
                maxValue: 50,
                symbol: less50
            },
            {
                minValue: 50,
                maxValue: 75,
                symbol: less75
            },
            {
                minValue: 75,
                maxValue: 100,
                symbol: less100
            }
        ]
    };

clear(fn)

清空场景中所有的GeoJSONLayer图层对象

Parameters:
Name Type Description
fn function

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


delete(ids, fn)

删除一个或多个GeoJSONLayer图层对象

Parameters:
Name Type Description
ids string | array

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

fn function

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


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

自动定位到GeoJSONLayer图层对象

Parameters:
Name Type Description
ids string | array

GeoJSONLayer图层对象的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

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


focusFeature(id, featureId, distance, flyTime, rotation, fn)

定位到GeoJSONLayer图层的某一块要素区域

Parameters:
Name Type Description
id string

GeoJSONLayer图层对象的ID

featureId number

要素区域Feature的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

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


hide(ids, fn)

隐藏一个或多个GeoJSONLayer图层对象

Parameters:
Name Type Description
ids string | array

GeoJSONLayer对象的ID或者ID数组

fn function

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


highlightFeature(id, featureId, fn)

高亮GeoJSONLayer图层对象内部的某一块要素区域

Parameters:
Name Type Description
id string

GeoJSONLayer图层对象的ID

featureId number

GeoJSONLayer图层对象内部的要素区域ID

fn function

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


highlightFeatures(data, fn)

高亮GeoJSONLayer图层对象内部的多块要素区域

Parameters:
Name Type Description
data object | array

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

  • id (string) GeoJSONLayer图层对象的ID

  • featureIds (array) GeoJSONLayer图层对象内部的要素区域ID,数组元素类型为number

fn function

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


setViewHeightRange(id, minViewHeight, maxViewHeight, fn)

设置GeoJSONLayer对象的可视高度范围,注意:当GeoJSONLayer使用贴地模式时,此方法会失效

Parameters:
Name Type Description
id string

GeoJSONLayer对象的ID

minViewHeight number

可视高度范围最小值,取值范围:[任意负数~任意正数],单位:米

maxViewHeight number

可视高度范围最大值,取值范围:[任意负数~任意正数],单位:米

fn function

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


show(ids, fn)

显示一个或多个GeoJSONLayer图层对象

Parameters:
Name Type Description
ids string | array

GeoJSONLayer对象的ID或者ID数组

fn function

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


stopAllHighlightFeaturesById(ids, fn)

取消高亮一个或者多个GeoJSONLayer图层的所有高亮要素区域

Parameters:
Name Type Description
ids string | array

GeoJSONLayer图层对象的ID或ID数组

fn function

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


stopHighlightFeature(id, featureId, fn)

取消高亮GeoJSONLayer图层对象内部的某一块要素区域

Parameters:
Name Type Description
id string

GeoJSONLayer图层对象的ID

featureId number

GeoJSONLayer图层对象内部的要素区域ID

fn function

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


stopHighlightFeatures(data, fn)

取消高亮GeoJSONLayer图层对象内部的多块要素区域

Parameters:
Name Type Description
data object | array

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

  • id (string) GeoJSONLayer图层对象的ID

  • featureIds (array) GeoJSONLayer图层对象内部的要素区域ID,数组元素类型为number

fn function

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


update(option, fn)

更新GeoJSONLayer图层对象的符号化显示效果

Parameters:
Name Type Description
option object

加载GeoJSON的配置项对象,结构参考add()方法

fn function

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


updateBegin()

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

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

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

updateEnd(fn)

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

Parameters:
Name Type Description
fn function

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

Inherited From:
Overrides: