Class: FMMap

FMMap

地图类

new fengmap.FMMap(options)

FMMap 是加载场景、显示模型、遍历模型等的主类,一个页面中必须且至少包含一个FMMap对象

Name Type Description
options json
Name Type Description
container HTMLElement

加载地图html容器,必填。

appName string

必填,可通过蜂鸟云平台-》我的应用-》创建应用

key string

必填,key可通过蜂鸟云平台-》我的应用-》创建应用-》添加key添加

mapServerURL string

设置地图数据的路径,如不设置,则从蜂鸟视图服务器上获取在线地图

mapThemeURL string

设置主题数据的路径,如不设置,则从蜂鸟视图服务器上获取在线主题

defaultThemeName string

设置默认主题名称,默认为‘2001’,设置后主题对应文件夹路径为:options.mapThemeURL+options.defaultThemeName。

useStoreApply boolean

开启支持主题中模型的自定义样式,默认为true。

defaultVisibleGroups array

初始显示楼层ID数组,默认值为[1]

defaultFocusGroup int

初始聚焦楼层ID,默认值为1,设置非1时请同步设置defaultVisibleGroups。

defaultViewCenter json

初始化地图中心点坐标。如:{x:12961580.734922647,y:4861883.567717729}

modelSelectedEffect boolean

支持单击模型高亮,false为单击时模型不高亮

modelHoverEffect boolean

支持悬停模型高亮或拾取,false为悬停时模型不高亮。默认值:false

modelHoverTime boolean

悬停时间触发时间,默认1000,参数数值表示毫秒时长。

focusAlphaMode boolean

是否对不聚焦图层启用透明设置 默认为true

focusAlpha float

对不聚焦图层启用透明设置 默认为0.1。值范围为 0-1。此属性只有当options.focusAlphaMode = ture是有效

focusAnimateMode boolean

是否开启聚焦图层切换的动画显示。默认true

defaultViewMode fengmap.FMViewMode

初始二维还是三维状态,fengmap.FMViewMode.MODE_2D|fengmap.FMViewMode.MODE_3D ,默认3维显示。

viewModeAnimateMode boolean

是否启用2D,3D模式切换时的动画效果。默认true

moveToAnimateMode boolean

是否启用拾取地图物体时相机的移动动画效果。 默认true。

scaleToAnimateMode boolean

是否启用地图物缩放的动画效果。 默认true。

defaultMapScaleLevel number

设置地图初始显示比例尺级别。范围为1-29之间的整数值。如29级的比例尺为1:1厘米。

mapScaleLevelRange array

设置比例尺级别可缩放范围, 通常室内地图使用到的范围为16级到23级。即:[16,23]。

defaultMapScale number

设置地图初始显示自定义比例尺级别。如设置1000,为1:1000(厘米)的显示状态。defaultMapScale的优先级比defaultMapScaleLevel的优先级高。

mapScaleRange array

设置自定义比例尺范围,单位(厘米),如[200,4000]。

compassOffset array

设置初始指南针的偏移量,默认为[28, 20],左:28px,上:20px。

compassSize number

设置指南针大小,默认50px。

defaultGroupSpace number

设置初始地图的楼层间距,默认50。

enabledPanRange boolean

是否开启平移地图范围限制,默认为false

tile boolean

是否访问分层数据,默认为false。

defaultBackgroundColor int | string

默认背景颜色: 0xff00ff, '#00ff00'

defaultBackgroundAlpha int

默认背景透明度: 0 ~ 1

defaultControlsPose number

地图默认旋转角度,默认为-15度。

defaultLabelLanguage fengmap.FMLanguageType

默认label的语言类型,显示英文或者中文

See:

Members

backgroundColorint

模型视窗的背景色 不可读

Properties:
Name Type Description
backgroundColor

readonlycenter

获取地图中心点

Properties:
Name Type Description
center json

返回地图坐标vector2

focusGroupID

当前视线锁定的楼层, 需要注意groupID有效, 防止引起不必要的错误。

Properties:
Name Type Description
focusGroupID number

楼层id

fullScreen

全屏设置

Properties:
Name Type Description
是否全屏 bool

gestureEnableController

获取地图的手势控制类

Properties:
Name Type Description
获取地图手势控制类 fengmap.FMMapGestureEnableController

readonlygroupIDs

获取当前地图的所有楼层groupID的集合

Properties:
Name Type Description
groupIDs array

groupSpace

楼层间距

Properties:
Name Type Description
groupSpace number

楼层间距

hoverFilterFunction

过滤设置可悬停拾取函数。可通过过滤设置模型的可悬停拾取和不可悬停拾取。

Properties:
Name Type Description
hoverFilterFunction function

该方法返回true表示支持悬停拾取,false表示不可悬停拾取

Example
map.hoverFilterFunction = function (event) {
      if (event.nodeType === fengmap.FMNodeType.MODEL &&
              event.typeID === 300000) {
          return false; //不支持悬停
     }
     if (event.nodeType === fengmap.FMNodeType.FLOOR) {
          return false; //不支持悬停
      }
      return true; //支持悬停
 };

labelLanguage

当前store标注用的语言类型

Properties:
Name Type Description
labelLanguage fengmap.FMLanguageType

"ZH"代表中文,"EN"代表英文

layerRenderOrder

layer渲染顺序等级。等级越高越后渲染,显示在上方(在深度检测开启后无效。一般作用于覆盖物layer之间的显示顺序)

mapScale

地图缩放比例

Properties:
Name Type Description
mapScale number

表示当前的比例尺为: 1:mapScale

mapScaleLevel

设置地图缩放等级

Properties:
Name Type Description
mapScaleLevel number

maxScale

最大缩放比例

Properties:
Name Type Description
maxScale number

maxScaleLevel

最大缩放等级

Properties:
Name Type Description
maxScaleLevel number

maxTitleAngle

maxTitleAngle

Properties:
Name Type Description
maxTitleAngle number

地图的最大倾斜角度

readonlymaxX

获取地图坐标x轴最大值

Properties:
Name Type Description
maxX number

readonlymaxY

获取地图坐标y轴最大值

Properties:
Name Type Description
maxY number

minScale

最小缩放比例

Properties:
Name Type Description
minScale number

minScaleLevel

最小缩放等级

Properties:
Name Type Description
minScaleLevel number

minTitleAngle

minTitleAngle

Properties:
Name Type Description
minTitleAngle number

地图的最小倾斜角度

readonlyminX

获取地图坐标x轴最小值

Properties:
Name Type Description
minX number

readonlyminY

获取地图坐标y轴最小值

Properties:
Name Type Description
minY number

pickFilterFunction

过滤设置可点击拾取函数。可通过过滤设置模型的可点击拾取和不可点击拾取。

Properties:
Name Type Description
pickFilterFunction function

该方法返回true表示支持点击拾取,false表示不可点击拾取

Example
//过滤不允许点击的地图元素,设置为true为允许点击,设置为false为不允许点击
  map.pickFilterFunction = function(event) {
      //如设置点击墙模型时不高亮
      if(event.nodeType == fengmap.FMNodeType.MODEL &&
          event.typeID == "300000") {
              return false;
      }
      return true;
  };

rotateAngle

rotateAngle

Properties:
Name Type Description
rotateAngle number

旋转度,取值范围 -360 - 360

readonlyscaleLevel

当前缩放等级

Properties:
Name Type Description
scaleLevel number

默认范围为:16 - 23

showCompass

是否显示指北针

Properties:
Name Type Description
showCompass bool

默认值:false。

themeName

主题设置

Properties:
Name Type Description
themeName string

主题名如"2002"、"2003",默认值:‘2001’

tiltAngle

倾斜度

Properties:
Name Type Description
tiltAngle float

取值范围 minTitleAngle - maxTitleAngle

viewMode

视图模式

Properties:
Name Type Description
viewMode fengmap.FMViewMode

FMViewMode类型。默认值:fengmap.FMViewMode.MODE_3D

visibleGroupIDs

设置可见的楼层集合

Properties:
Name Type Description
visibleGroupIDs array

例:[1,2,3]

Methods

addLocationMarker(marker)

添加locationMarker

Name Type Description
marker fengmap.FMLocationMarker

locationMarker实例

callAllLayersByAlias(alias, back)

根据别名遍历对应layer

Name Type Description
alias string

别名,供设置的值有:'extent' | 'model' | 'label' | 'facility' | 'textMarker' | 'imageMarker' | 'externalModel'

back fucntion

回调函数

Name Type Description
layer object

回调返回参数,查询到的某一楼层的图层

clearLineMark(marker)

清除路径线

Name Type Description
marker undefined | array.<fengmap.FMLineMarker>

可选。如不传该参数表示移除所有FMLineMarker,如果为数组则移除数组内的FMLineMarker。

coordMapToScreen(x, y, z)

地图坐标转屏幕坐标

Name Type Description
x number

地图坐标x

y number

地图坐标y

z number

高度z

coordScreenToMap(x, y, z, isFloat, giveMeRaw){json}

屏幕坐标转地图坐标

Name Type Description
x number

屏幕x值

y number

屏幕y值

z number

地图高度

isFloat bool

是否使用屏幕像素坐标系 默认false

giveMeRaw bool

是否返回三维空间坐标 默认false

Returns:
Type Description
json 返回对应的地图坐标

dispose()

释放内存

drawLineMark(line, style, back)

画出线

Name Type Description
line fengmap.FMLineMarker

FMLineMarker对象

style json

线形的样式

Name Type Description
lineType fengmap.FMLineType

线型

color string

只支持修改非FMARROW线型的线的颜色。

smooth boolean

是否开启平滑线功能

lineWidth number

设置线宽

mapUrl string

线贴图路径

godColor string

设置FMARROW线型线的颜色,十六进制颜色值。如:'#FF0000'。

godEdgeColor boolean

设置FMARROW线型线边线的颜色,十六进制颜色值。如:'#FF0000'

noAnimate boolean

设置导航线的动画。【 true 】启用关闭动画,【 false 】启用动画。

back *

回调函数

Example
let _linestyle = {color: 0xff0000,lineWidth: 8,alpha: 0.8,dash: {size: 1,gap: 1}}

fullScreenAvaliable(){bool}

检查浏览器能否全屏

Returns:
Type Description
bool ture表示支持全屏

getAutoRotateBymodel()

返回是否模型绕中心旋转

Properties:
Name Type Description
autoRotateBymodel bool

getAutoRotateBymodelSpeed()

返回模型旋转速度

Properties:
Name Type Description
speed number

速度

getDatasByAlias(gid, alias, filter){array}

根据类型别名获取指定楼层上面的某图层数据

Name Type Description
gid number

楼层id

alias string

别名,供设置的值有:'extent' | 'model' | 'label' | 'facility' | 'textMarker' | 'imageMarker' | 'externalModel'

filter function

过滤函数

Returns:
Type Description
array 地图元素数据

getEffectRenderer(){fengmap.FMEffectRenderer}

获得EffectRenderer

Returns:
Type Description
fengmap.FMEffectRenderer

getFMGroup(gid){fengmap.FMGroup}

通过id获取对应楼层对象

Name Type Description
gid number

楼层id

Returns:
Type Description
fengmap.FMGroup

getLayerByAlias(gid, alias, back){array}

获取对应楼层别名为alias的layer

Name Type Description
gid number

楼层id

alias string

图层别名,供设置的值有:'extent' | 'model' | 'label' | 'facility' | 'textMarker' | 'imageMarker' | 'externalModel'

back function

回调函数

Returns:
Type Description
array layers

getRotationCoord(x, y){json}

获取正确坐标的方法,当设置地图绕中点旋转设置之后,通过mapClickNode事件获取坐标需要调用此方法

Name Type Description
x number

地图坐标x

y number

地图坐标y

Returns:
Type Description
json 返回旋转后的地图坐标

getScalelevelValueByVectics(startPnt, endPnt){number}

根据矩形左下角坐标和右上角坐标获取地图当前的显示级别

Name Type Description
startPnt json

左下角坐标

endPnt json

右上角坐标

Returns:
Type Description
number level

getScaleValueByVectics(startPnt, endPnt){number}

根据矩形左下角坐标和右上角坐标获取地图当前的显示比例尺

Name Type Description
startPnt json

左下角坐标

endPnt json

右上角坐标

Returns:
Type Description
number 比例尺

getSearchObjects(results)

返回根据搜索结果查询到的对象

Name Type Description
results Array

搜索结果数组

getVisibleGroups()

显示楼层获取。返回楼层数组

moveTo(opts)

地图中心移动到指定点,如果groupID和当前聚焦层不一致,会自动切换至groupID楼层,此时不要和focusGroupID组合调用。

Name Type Description
opts json
Name Type Description
x float

地图坐标x值。

y float

地图坐标y值。

z float

地图坐标z值。

groupID int

楼层id,跳转到指定位置,并聚焦该楼层。

time int

目标层不是聚焦层时跳转的动画时间间隔。

callback function

完成moveTo事件后的回调,返回目标层gid。

moveToCenter(gid)

移动地图至楼层的中心点

Name Type Description
gid int

目标楼层id。

off(type, back)

地图事件移除

Name Type Description
type *

事件类型

back *

回调函数

on(type, back)

地图事件注册

Name Type Description
type *

事件类型

back *

回调函数

openMapById(sceneId, failed)

通过sceneId加载地图。

Name Type Description
sceneId number

场景Id

failed function

失败返回函数

Printing(callback)

地图打印功能

Name Type Description
callback function

回调函数,参数为截图blob数据

removeLineMarker(marker)

清除某条路径线

Name Type Description
marker fengmap.FMLineMarker

移除当前的某条线FMLineMarker。

removeLocationMarker(marker)

删除locationMarker

Name Type Description
marker fengmap.FMLocationMarker

locationMarker实例

rotateTo(param)

旋转到对应角度

Name Type Description
param json

{to: 45, duration: 1, callback: function() {}}

Name Type Description
to number

转至角度

duration number

动画时间

callback function

回调函数

scaleLevelIn()

scalelevel等级降低

scaleLevelOut()

scalelevel等级提高

scaleLevelTo(params)

定位到某个级别

Name Type Description
params json
Name Type Description
duration float

动画时间

level float

缩放级别

update float

动画执行时回掉。

opts.callback function

完成moveTo事件后的回调,返回目标层gid。

scaleTo(params)

缩放到对应值

Name Type Description
params json
Name Type Description
duration float

动画时间

scale float

缩放值

update float

动画执行时回掉。

opts.callback function

完成moveTo事件后的回调,返回目标层gid。

screenshot(pos1, pos3, direction, rank, callback)

打印截图

Name Type Description
pos1 number

选框左上角点坐标

pos3 number

选框右下角点坐标

direction bool

打印纸张方向,【true】:纵向打印,【false】:横向打印。缺省为根据打印截图的宽高自动判断

rank int

打印等级,等级越高,质量越高(1-5) 通常这个值应设置为3

callback function

截图成功后回调函数,第1(base64),2(bolb)个参数为打印截图。第3(base64),4(bolb)个参数为框选截图

setAutoRotateBymodel(isrote)

设置模型绕中心旋转

Name Type Description
isrote bool

【true】:绕中心旋转,【false】:不旋转

setAutoRotateBymodelSpeed()

设置模型旋转速度

Properties:
Name Type Description
speed number

速度

setBackgroundColor(color, alpha)

背景色与透明度设置

Name Type Description
color string | int

颜色值0xFF0000 | '#FF0000'

alpha number

透明度,取值范围:0.0 - 1.0

setMapScaleLevelRange(min, max)

设置地图比例尺 级别 范围

Name Type Description
min number

最小等级

max number

最大等级

setMapScaleRange(min, max)

地图缩放比例范围设置

Name Type Description
min number

最小比例

max number

最大比例

setModelSelectColor(color, alpha)

设置模型拾取颜色

Name Type Description
color string | number

十六进制颜色值或CSS颜色样式: 0xFF0000 | '#FF0000'

alpha number

透明度。在0 ~ 1之间取值。

setVisibleGroups()

设置显示楼层,楼层id数组

tiltTo(params)

倾斜到对应角度

Name Type Description
params json

{to: 45, duration: 1, callback: function() {}}

Name Type Description
to number

移动到的角度值

duration number

动画时间

callback function

回调函数

zoomIn()

地图动画放大

zoomOut()

地图动画缩小

Events

focusGroupIDChanged

聚焦楼层改变事件

Type:
  • json
Properties:
Name Type Description
type string

"focusGroupIDChanged"

gid number

改变后的聚焦楼层goupID。

gltfLoaded

外部模型加载完成事件

loadComplete

地图加载完成事件

mapClickNode

地图点击事件。默认所有地图元素均可点击拾取,可通过fengmap.FMMap属性pickFilterFunction设置某些地图元素的不可点击拾取属性。

Type:
  • json
Properties:
Name Type Description
type string

"mapClickNode"

target fengmap.FMNode

当前点击拾取到的fengmap.FMNode对象。当nodeType !== 0时,target 包含FMNode对象的属性。如下:

Properties
Name Type Description
FID string

模型的唯一编码

groupID number

当前楼层

height number

FMNode对象的高度

typeID number

FMNode对象的类型ID

mapCoord json

当前对象对应的中心点坐标

show boolean

是否显示

minlevel number

最小显示级别

maxlevel number

最大显示级别

x number

x坐标

y number

y坐标

z number

z坐标

domEvent MouseEvent

当前触发点击的鼠标或触摸事件,包含点击位置的屏幕坐标,domElement等信息。

eventInfo json

封装根据当前触发点击事件计算后的一些属性。

Properties
Name Type Description
domEvent MouseEvent

当前触发点击的鼠标或触摸事件,包含点击位置的屏幕坐标,domElement等信息。

coord json

点击位置的地图坐标。

nodeType fengmap.FMNodeType

当前触发点击事件拾取到的结点类型。

mapHoverNode

地图hover事件,默认不开启,可通过fengmap.MapOptions中的modelHoverEffect:true开启、或通过map.hoverFilterFunction方法针对不同的模型开启hover事件。mapHoverClickNode事件的返回值和mapClickNode相同。

Type:
  • json

mapScaleLevelChanged

地图级别变化时的回调。

Type:
  • json
Properties:
Name Type Description
type string

"mapScaleLevelChanged"

scale number

改变后的比例尺级别。

scaleLevelChanged

地图比例尺级别变化时的回调。

Type:
  • json
Properties:
Name Type Description
type string

"scaleLevelChanged"

scale number

改变后的比例尺级别。

visibleGroupIDsChanged

地图可见楼层ID发生变化时的回调。

Type:
  • json
Properties:
Name Type Description
type string

"visibleGroupIDsChanged"

gids array

改变后的可见楼层ID数组。

visibleGroupLoaded

开启分层加载时,显示楼层加载完成事件