Joint3d-SDK 开发文档
  • 基础构成
  • 地图地形
  • 业务图层
  • 覆盖元素
  • 材质属性
  • 效果动画
  • 实用工具
  • 场景分析
  • 第三方集成
  • English
  • 简体中文
  • 基础构成
  • 地图地形
  • 业务图层
  • 覆盖元素
  • 材质属性
  • 效果动画
  • 实用工具
  • 场景分析
  • 第三方集成
  • English
  • 简体中文
  • 业务图层

    • Layer
      • properties
      • methods
      • static methods
    • Joint3d.LayerGroup
      • example
      • creation
      • properties
      • methods
    • Joint3d.VectorLayer
      • example
      • creation
    • Joint3d.DynamicLayer
      • example
      • creation
    • Joint3d.PrimitiveLayer
      • example
      • creation
    • Joint3d.GroundPrimitiveLayer
      • example
      • creation
    • Joint3d.TilesetLayer
      • example
      • creation
    • Joint3d.S3MLayer
      • example
      • creation
    • Joint3d.GeoJsonLayer
      • example
      • creation
      • methods
    • Joint3d.TopoJsonLayer
      • example
      • creation
      • methods
    • Joint3d.HtmlLayer
      • example
      • creation
    • Joint3d.CzmlLayer
      • example
      • creation
    • Joint3d.KmlLayer
      • example
      • creation
    • Joint3d.GpxLayer
      • example
      • creation
    • Joint3d.ClusterLayer
      • example
      • creation
    • Joint3d.HeatLayer
      • example
      • creation
      • methods
    • Joint3d.WindLayer
      • example
      • creation
      • methods
  • zh
  • layer
2022-01-10
目录

业务图层

# 业务图层

将具有相同业务逻辑或属性的覆盖元素进行分类,以便于同一管理

# Layer

图层的基类,其子类是实例化后需添加到三维场景中方可展示各类三维数据

注意

该基本类无法实例化

# properties

  • {String} id:唯一标识 readonly
  • {Boolean} show:是否显示
  • {Object} attr:业务属性
  • {String} state:图层状态 readonly
  • {String} type:图层类型 readonly

# methods

  • addOverlay(overlay)

    添加覆盖物

    • 参数
      • {Overlay} overlay:覆盖物
    • 返回值 this
  • addOverlays(overlays)

    添加覆盖物数组

    • 参数
      • {Array<Overlay>} overlays:覆盖物数组
    • 返回值 this
  • removeOverlay(overlay)

    删除覆盖物

    • 参数
      • {Overlay} overlay:覆盖物
    • 返回值 this
  • getOverlay(overlayId)

    根据 Id 获取覆盖物(不推荐用)

    • 参数
      • {String} overlayId:覆盖物唯一标识(默认产生)
    • 返回值 overlay
  • getOverlayById(Id)

    根据业务 Id 获取覆盖物(推荐用)

    • 参数
      • {String} Id:覆盖物业务唯一标识
    • 返回值 overlay
  • getOverlaysByAttr(attrName, attrVal)

    根据覆盖物属性获取覆盖物

    • 参数
      • {String} attrName:属性名称
      • {Object} attrVal:属性值
    • 返回值 array
    overlay.attr.name = 'test' //设置覆盖物的属性
    let arr = layer.getOverlaysByAttr('name', 'test') //根据属性获取覆盖物
    
  • getOverlays()

    获取所有覆盖物

    • 返回值 array
  • eachOverlay(method, context)

    遍历覆盖物

    • 参数
      • {Function} method:回调函数,参数为每一个覆盖物
      • {Object} context:上下文
    • 返回值 this
    layer.eachOverlay((item) => {})
    
  • clear()

    清空图层

    • 返回值 this
  • remove()

    删除图层

    • 返回值 this
  • addTo(viewer)

    添加图层到场景

    • 参数
      • {Viewer|World} viewer:场景
    • 返回值 this
  • on(type, callback, context)

    事件订阅

    • 参数
      • {Object} type :订阅类型
      • {Function} callback :订阅回调
      • {Object} context :上下文
    • 返回值 this
  • off(type, callback, context)

    取消事件订阅

    • 参数
      • {Object} type :订阅类型
      • {Function} callback :订阅回调
      • {Object} context :上下文
    • 返回值 this
  • fire(type,params)

    触发事件

    • 参数
      • {Object} type :订阅类型
      • {Object} params :参数
    • 返回值 this

# static methods

  • registerType(type)

    注册图层类型

    • 参数
      • {String} type:图层类型
  • getLayerType()

    获取图层类型

    • 返回值 string

# Joint3d.LayerGroup

图层组,将图层按一定的逻辑分组,方便统一管理

# example

let layerGroup = new Joint3d.LayerGroup('id')
viewer.addLayerGroup(layerGroup)
let layer = new Joint3d.VectorLayer('layer')
layerGroup.addLayer(layer)

# creation

  • constructor(id)

    构造函数

    • 参数
      • {String} id:图层组唯一标识
    • 返回值 layerGroup

# properties

  • {String} id:唯一标识 readonly
  • {Boolean} show:是否显示
  • {String} type:图层类型 readonly

# methods

  • addLayer(layer)

    添加图层

    • 参数
      • {Layer} layer:图层
    • 返回值 this
  • removeLayer(layer)

    删除图层

    • 参数
      • {Layer} layer:图层
    • 返回值 this
  • getLayer(id)

    获取图层

    • 参数
      • {String} id:图层 ID
    • 返回值 layer
  • getLayers()

    获取所有图层,不包括地图

    • 返回值 layer
  • remove()

    删除图层组

    • 返回值 this
  • addTo(viewer)

    添加图层到场景

    • 参数
      • {Viewer|World} viewer:场景
    • 返回值 this

# Joint3d.VectorLayer

矢量图层,用于添加各类矢量数据(点、线、面等),将矢量数据按一定的逻辑分组,方便统一管理,继承于Layer

# example

let layer = new Joint3d.VectorLayer('id')
viewer.addLayer(layer)

# creation

  • constructor(id)

    构造函数

    • 参数
      • {String} id:图层唯一标识
    • 返回值 vectorLayer

# Joint3d.DynamicLayer

动态图层,用于添加各类动态矢量数据(图标、模型等),将矢量数据按一定的逻辑分组,方便统一管理,继承于Layer

# example

let layer = new Joint3d.DynamicLayer('id')
viewer.addLayer(layer)

# creation

  • constructor(id)

    构造函数

    • 参数
      • {String} id:图层唯一标识
    • 返回值 dynamicLayer

# Joint3d.PrimitiveLayer

图元图层,用于添加各类图元数据,将图元数据按一定的逻辑分组,方便统一管理,继承于Layer

# example

let layer = new Joint3d.PrimitiveLayer('id')
viewer.addLayer(layer)

# creation

  • constructor(id)

    构造函数

    • 参数
      • {String} id:图层唯一标识
    • 返回值 primitiveLayer

# Joint3d.GroundPrimitiveLayer

贴地图元图层,用于添加各类贴地图元数据,将贴地图元数据按一定的逻辑分组,方便统一管理,继承于Layer

# example

let layer = new Joint3d.GroundPrimitiveLayer('id')
viewer.addLayer(layer)

# creation

  • constructor(id)

    构造函数

    • 参数
      • {String} id:图层唯一标识
    • 返回值 groundPrimitiveLayer

# Joint3d.TilesetLayer

3dTiles 图层,用于添加 3dTiles 模型数据, 继承于Layer

# example

let layer = new Joint3d.TilesetLayer('id')
viewer.addLayer(layer)

# creation

  • constructor(id)

    构造函数

    • 参数
      • {String} id:图层唯一标识
    • 返回值 tilesetLayer

# Joint3d.S3MLayer

S3M图层,继承于Layer

# example

let layer = new Joint3d.S3MLayer('id','**.scp')
viewer.addLayer(layer)

# creation

  • constructor(id,url,[options])

    构造函数

    • 参数
      • {String} id:图层唯一标识
      • {String} url:数据地址
      • {Object} options:属性配置
    • 返回值 S3MLayer
//属性参数(可选)
{
  "maxVisibleDistance":Number.MAX_VALUE, //最大可见距离
  "minVisibleDistance":0,//最小可见距离
}

# Joint3d.GeoJsonLayer

GeoJson 图层,用于加载 GeoJson 格式数据,继承于Layer,

# example

let layer = new Joint3d.GeoJsonLayer('id', '**/**.geojson')
layer.eachOverlay((item) => {
  // item 为一个entity,
  if (item.polyline) {
    //todo
    let polyline = Joint3d.Polyline.fromEntity(item)
  }
  if (item.polygon) {
    //todo
    let polygon = Joint3d.Polygon.fromEntity(item)
  }
  if (item.billboard) {
    //todo
    let point = Joint3d.Point.fromEntity(item)
    let divIcon = Joint3d.DivIcon.fromEntity(item)
    let billboard = Joint3d.Billboard.fromEntity(item)
  }
})

# creation

  • constructor(id,url,[options])

    构造函数

    • 参数
      • {String} id:图层唯一标识
      • {String|Object} url:数据地址或者GeoJSON对象
      • {Object} options:属性配置
    • 返回值 geoJsonLayer
//options(可选)
{
 "sourceUri": '../...geojson',//重写用于解析相对链接的url。
 "markerSize": 3,//为每个点创建的地图图钉的默认大小(以像素为单位)。
 "markerSymbol": "?",//为每个点创建的地图图钉的默认符号。这可以是任何有效的 Maki 标识符、任何单个字符或空白(如果不使用符号)。
 "markerColor": Joint3d.Color.RED,//为每个点创建的地图图钉的默认颜色。
 "stroke": Joint3d.Color.RED,//折线和多边形轮廓的默认颜色。
 "strokeWidth": 3,//折线和多边形轮廓的默认宽度。
 "fill": Joint3d.Color.RED,//多边形内部填充的默认颜色。
 "clampToGround": true,//如果想要将地图图钉固定在地面上,则为 true。
}

# methods

  • toVectorLayer()

    转换为矢量图层

    • 返回值 vectorLayer
  • toModelLayer(modelUrl)

    转换为模型图层

    • 参数
      • {String} modelUrl:模型地址
    • 返回值 vectorLayer

# Joint3d.TopoJsonLayer

TopoJson 图层,用于加载 TopoJson 格式数据,继承于Layer,

# example

let layer = new Joint3d.TopoJsonLayer('id', '**/**.geojson')
layer.eachOverlay((item) => {
  // item 为一个entity,
  if (item.polyline) {
    //todo
    let polyline = Joint3d.Polyline.fromEntity(item)
  }
  if (item.polygon) {
    //todo
    let polygon = Joint3d.Polygon.fromEntity(item)
  }
  if (item.billboard) {
    //todo
    let point = Joint3d.Point.fromEntity(item)
    let divIcon = Joint3d.DivIcon.fromEntity(item)
    let billboard = Joint3d.Billboard.fromEntity(item)
  }
})

# creation

  • constructor(id,url,[options])

    构造函数

    • 参数
      • {String} id:图层唯一标识
      • {String|Object} url:数据地址或者TopoJson对象
      • {Object} options:属性配置
    • 返回值 topoJsonLayer
//options(可选)
{
  "sourceUri": '../...geojson',//重写用于解析相对链接的url。
  "markerSize": 3,//为每个点创建的地图图钉的默认大小(以像素为单位)。
  "markerSymbol": "?",//为每个点创建的地图图钉的默认符号。这可以是任何有效的 Maki 标识符、任何单个字符或空白(如果不使用符号)。
  "markerColor": Joint3d.Color.RED,//为每个点创建的地图图钉的默认颜色。
  "stroke": Joint3d.Color.RED,//折线和多边形轮廓的默认颜色。
  "strokeWidth": 3,//折线和多边形轮廓的默认宽度。
  "fill": Joint3d.Color.RED,//多边形内部填充的默认颜色。
  "clampToGround": true,//如果想要将地图图钉固定在地面上,则为 true。
}

# methods

  • toVectorLayer()

    转换为矢量图层

    • 返回值 vectorLayer
  • toModelLayer(modelUrl)

    转换为模型图层

    • 参数
      • {String} modelUrl:模型地址
    • 返回值 vectorLayer

# Joint3d.HtmlLayer

Html 图层,用于加载 DivIcon 节点,继承于Layer,

# example

let layer = new Joint3d.HtmlLayer('dom')
viewer.addLayer(layer)

# creation

  • constructor(id)

    构造函数

    • 参数
      • {String} id:图层唯一标识
    • 返回值 htmlLayer

# Joint3d.CzmlLayer

Czml 图层,用于加载 Czml 数据,继承于Layer

# example

let layer = new Joint3d.CzmlLayer('id', '**/**.czml')
layer.eachOverlay((item) => {
  if (item.polyline) {
    //todo
  }
  if (item.polygon) {
    //todo
  }
  if (item.billboard) {
    //todo
  }
})

# creation

  • constructor(id,url,[options])

    构造函数

    • 参数
      • {String} id:图层唯一标识
      • {String} url:数据地址
      • {Object} options:属性配置
    • 返回值 czmlLayer
//options(optional)
{
  "sourceUri": '../...czml',//重写用于解析相对链接的url。
}

# Joint3d.KmlLayer

Kml 图层,用于加载 Kml 数据,继承于Layer

# example

let layer = new Joint3d.KmlLayer('id', '**/**.kml')
layer.eachOverlay((item) => {
  if (item.polyline) {
    //todo
  }
  if (item.polygon) {
    //todo
  }
  if (item.billboard) {
    //todo
  }
})

# creation

  • constructor(id,url,[options])

    构造函数

    • 参数
      • {String} id:图层唯一标识
      • {String} url:数据地址
      • {Object} options:属性配置
    • 返回值 kmlLayer
//options(optional)
{
  "sourceUri": '../...kml',//重写用于解析相对链接的url。
}

# Joint3d.GpxLayer

GPX 图层,用于加载 gpx 数据,继承于Layer

# example

let layer = new Joint3d.GpxLayer('id', '**/**.gpx')

# creation

  • constructor(id,url,[options])

    构造函数

    • 参数
      • {String} id:图层唯一标识
      • {String} url:数据地址
      • {Object} options:属性配置
    • 返回值 gpxLayer

# Joint3d.ClusterLayer

聚合图层,继承于Layer

# example

let layer = new Joint3d.ClusterLayer('id')
viewer.addLayer(layer)

# creation

  • constructor(id,[options])

    构造函数

    • 参数
      • {String} id:图层唯一标识
      • {Object} options:属性配置
    • 返回值 clusterLayer
// 属性参数(可选)
{
  "size": 48, //聚合的尺寸
  "pixelRange": 40, //像素范围
  "gradient": {
    "0.0001": Joint3d.Color.DEEPSKYBLUE,
    "0.001": Joint3d.Color.GREEN,
    "0.01": Joint3d.Color.ORANGE,
    "0.1": Joint3d.Color.RED
  }, // 幅度颜色设置
  "style": "circle", // pin、circle 和 clustering
  "fontSize": 12, // 字体大小
  "fontColor": Joint3d.Color.BLACK // 字体颜色
}

# Joint3d.HeatLayer

热区图层,继承于Layer

# example

let layer = new Joint3d.HeatLayer('id')
viewer.addLayer(layer)

# creation

  • constructor(id,bounds,[options])

    构造函数

    • 参数
      • {String} id:图层唯一标识
      • {Object} options:属性配置
    • 返回值 heatLayer
//属性参数(可选)
{
  "gradient": {
    "0.5": "green",
    "0.6": "orange",
    "0.95": "red"
  }, //颜色设置
  "height": 0, // 高度
  "radius": 30, // 半径
  "useGround": false, //是否使用贴地模式
  "classificationType": 2 //分类 是否影响地形,3D切片或同时影响这两者。0:地形、1:3D切片、2:两者。贴地模式下生效
}

# methods

  • setPositions(positions)

    设置点位

    • 参数
      • {Array<Object>} positions:点位信息
    • 返回值 heatLayer
//点位信息参数
{
  "lng": "", //经度
  "lat": "", //纬度
  "value": 10 //强度
}
  • addPosition(position)

    添加点位

    • 参数
      • {Object} position:点位信息
    • 返回值 heatLayer
//点位信息参数
{
  "lng": "", //经度
  "lat": "", //纬度
  "value": 10 //强度
}

# Joint3d.WindLayer

风向图层,继承于Layer

# example

let layer = new Joint3d.WindLayer('id')
viewer.addLayer(layer)

# creation

  • constructor(id,[options])

    构造函数

    • 参数
      • {String} id:图层唯一标识
      • {Object} options:属性配置
    • 返回值 windLayer
//属性参数(可选)
{
  "globalAlpha": 0.9, //透明度
  "lineWidth": 1, // 线宽
  "colorScale": "#fff", //颜色
  "velocityScale": 1 / 25,
  "maxAge": 90,
  "paths": 800, // 路径数
  "frameRate": 20,
  "useCoordsDraw": true,
  "gpet": true
}

# methods

  • setData(data,[options])

    设置风向数据

    • 参数
      • {Object} data:风向数据
      • {Object} options:配置信息,参考构造函数的配置信息
    • 返回值 windLayer
  • setOptions(options)

    设置风向数据

    • 参数
      • {Object} options:配置信息,参考构造函数的配置信息
    • 返回值 windLayer
Copyright © 2021-2022 厦门集恩图造信息科技股份有限公司
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式