indoor~Building(geometry, attributes, options)

矢量楼块图楼栋类。默认在地图缩放层级16级后显示。

Extends:
  • module:model~IndoorStretchFeature

Summary

Methods:
fromJSON

将JSON对象转成相应的要素类

addFloor

在该楼栋上添加楼层

addFloors

在该楼栋上添加多个楼层

deleteFloorData

删除该楼栋中对应矢量楼块图服务中的楼层数据,包括楼层中的户室数据

generateDefaultFloors

生成默认楼幢,算法会对楼栋底面自动等分,对于不精确户室面积的可以使用

getAttributes

获取当前要素的属性

getCampus

获取楼栋所在园区

getFid

获取楼栋要素的唯一标识

getFloor

根据楼层号获取楼层

getFloorById

根据fid获取楼层

getFloors

获取所有楼层

getFocusedFloor

获取视图聚焦的楼层

getGroundElevation

获取楼栋底面起始高程

getSurfaceSymbols

获取楼栋表面样式

getTotalHeight

根据楼栋中所有楼层的高度和地板厚度计算楼栋的总高度

getType

返回要素的类型

loadFloorById

从数据库中加载指定fid的楼层

loadFloors

从数据库加载该楼栋内的所有楼层。

removeAllFloors

移除所有楼层

removeFloor

移除该楼栋上指定楼层

saveData

保存楼栋数据至对应矢量楼块图服务

setAttributes

设置地理要素的非空间属性。注意,该操作会覆盖原有属性

setBorderSymbol

设置边框样式

setFloorViewMode

切换单层/多层视图

setFocusedFloor

设置视图聚焦的楼层

setGeometry

重新设置地理要素的几何体。

setGroundElevation

设置楼栋底面起始高程

setLabelVisibility

设置注记的可见性

setShowBorder

设置边框可见性

setSurfaceSymbols

设置楼栋表面样式

setVisualFloorSpacing

在可视化时将楼层拉开一定间距,方便查看楼层中的要素

toJSON

将要素转化成JSON对象

Constructor

new Building(geometry, attributes, options)

Parameters:
Name Type Description
geometry module:geom~Geometry

地理几何体

attributes Object

一个对象,用来描述地理要素的非空间属性,可用来存储楼栋的名称,楼层号,楼栋高度等自定义属性

Name Type Description
groundElevation Number

楼栋底面起始高程,单位为米

height Number

楼栋高度,单位为米

description String

楼栋信息描述

buildingNumber String

楼栋编号,例如A1幢

buildingUse Number

建筑用途,1:民用建筑,2:工业建筑,3:农业建筑

datasetName String

数据集名称

label String

注记本文

options Object

可选属性设置

Name Type Description
showBorder Boolean

是否显示边框

borderSymbol module:style~LineSymbol

边框样式,目前仅支持设置线的宽度,实线/虚线,其中虚线时dashRatio不支持

roofSymbol module:style~FillSymbol

顶面样式设置,样式设置透明度效果受绘制顺序影响

facadeSymbol module:style~FillSymbol

侧面样式设置,样式设置透明度效果受绘制顺序影响

surfaceSymbol module:style~FillSymbol

表面纯色样式设置,当设置roofSymbol和facadeSymbol的时候surfaceSymbol纯色无效,优先级低于前两者。样式设置透明度效果受绘制顺序影响

Example
const polygon = new hmap.geom.Polygon([lineRing]);
let building = new hmap.indoor.Building(polygon, { height: 100 }, {
 surfaceSymbol: new hmap.style.ColorFill(new hmap.style.Color(255, 255, 0, 1)),
 showBorder: true
});

Methods

static fromJSON(json) → {module:indoor~Building}

将JSON对象转成相应的要素类

Parameters:
Name Type Description
json JSON

JSON对象

Returns:
module:indoor~Building -

楼栋

addFloor(floor)

在该楼栋上添加楼层

Parameters:
Name Type Description
floor module:indoor~Floor

待添加的楼层

addFloors(floors)

在该楼栋上添加多个楼层

Parameters:
Name Type Description
floors Array.<module:indoor~Floor>

待添加楼层数组

deleteFloorData(ids)

删除该楼栋中对应矢量楼块图服务中的楼层数据,包括楼层中的户室数据

Parameters:
Name Type Description
ids Array.<Number>

待删除楼层数据的id数组

generateDefaultFloors(floorNum, unitNum, row, col)

生成默认楼幢,算法会对楼栋底面自动等分,对于不精确户室面积的可以使用

Parameters:
Name Type Description
floorNum Number

楼层数量

unitNum Number

单元数量

row Number

每层的房间行数量

col Number

每层的房间列数量

getAttributes() → {JSON}

获取当前要素的属性

Returns:
JSON -

当前要素的属性信息

getCampus() → {module:indoor~Campus}

获取楼栋所在园区

Returns:
module:indoor~Campus -

楼栋所在园区

getFid() → {String}

获取楼栋要素的唯一标识

Returns:
String -

唯一标识

getFloor(level) → {module:indoor~Floor}

根据楼层号获取楼层

Parameters:
Name Type Description
level String

楼层号

getFloorById(fid) → {module:indoor~Floor}

根据fid获取楼层

Parameters:
Name Type Description
fid String

楼层的唯一标识符fid

Returns:
module:indoor~Floor -

唯一标识符fid对应的楼层。如果该标识符不存在,则返回null

getFloors() → {Array.<module:indoor~Floor>}

获取所有楼层

Returns:
Array.<module:indoor~Floor> -

获取到的楼层数组

getFocusedFloor() → {Number}

获取视图聚焦的楼层

Returns:
Number -

聚焦的楼层号

getGroundElevation() → {Number}

获取楼栋底面起始高程

Returns:
Number

getSurfaceSymbols() → {Object}

获取楼栋表面样式

Returns:
Object -

楼栋样式

getTotalHeight() → {Number}

根据楼栋中所有楼层的高度和地板厚度计算楼栋的总高度

Returns:
Number -

楼栋总高度

getType() → {String}

返回要素的类型

Returns:
String -

要素类型

async loadFloorById(fid) → {Promise}

从数据库中加载指定fid的楼层

Parameters:
Name Type Description
fid String

指定楼层fid

Returns:
Promise -

从数据库加载的楼层信息

loadFloors() → {Promise}

从数据库加载该楼栋内的所有楼层。

Returns:
Promise

removeAllFloors()

移除所有楼层

removeFloor(floor)

移除该楼栋上指定楼层

Parameters:
Name Type Description
floor module:indoor~Floor

待移除的楼层

saveData() → {Promise}

保存楼栋数据至对应矢量楼块图服务

Throws:

楼栋对象必须添加到园区对象中,才能执行saveData方法

Returns:
Promise -

返回保存是否成功的信息

setAttributes(attributes)

设置地理要素的非空间属性。注意,该操作会覆盖原有属性

Parameters:
Name Type Description
attributes JSON

属性信息

setBorderSymbol(lineSymbol)

设置边框样式

Parameters:
Name Type Description
lineSymbol module:style~LineSymbol

边框线样式

setFloorViewMode(floorViewMode)

切换单层/多层视图

Parameters:
Name Type Description
floorViewMode String

楼层视图模式,单层或多层,可填"single"/"many"

setFocusedFloor(level)

设置视图聚焦的楼层

Parameters:
Name Type Description
level Number

聚焦的楼层号

setGeometry(geom)

重新设置地理要素的几何体。

Parameters:
Name Type Description
geom module:geom~Geometry

几何体对象。

Throws:

当参数geom不是Geometry子类的实例时,抛出异常:"Building setGeometry: the parameter is not a Geometry ."

setGroundElevation(z)

设置楼栋底面起始高程

Parameters:
Name Type Description
z Number

起始高程,单位为米

setLabelVisibility(visible)

设置注记的可见性

Parameters:
Name Type Description
visible Boolean

是否可见,可见时为true,不可见为false

setShowBorder(visible)

设置边框可见性

Parameters:
Name Type Description
visible Boolean

边框的可见性

setSurfaceSymbols(symbols)

设置楼栋表面样式

Parameters:
Name Type Description
symbols Object
Name Type Description
roofSymbol module:style~FillSymbol

顶面样式设置

facadeSymbol module:style~FillSymbol

侧面样式设置

surfaceSymbol module:style~FillSymbol

表面纯色样式设置,当设置roofSymbol和facadeSymbol的时候surfaceSymbol纯色无效,优先级低于前两者

setVisualFloorSpacing(height)

在可视化时将楼层拉开一定间距,方便查看楼层中的要素

Parameters:
Name Type Description
height Number

楼层之间的间隔高度,以米为单位

toJSON() → {JSON}

将要素转化成JSON对象

Returns:
JSON -

JSON对象