new fengmap.FMMap(options)
FMMap 是加载场景、显示模型、遍历模型等的主类,一个页面中必须且至少包含一个FMMap对象
| Name | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
json |
|
Members
-
backgroundColorint
-
模型视窗的背景色 不可读
Properties:
Name Type Description backgroundColor -
readonlycenter
-
获取地图中心点
Properties:
Name Type Description centerjson 返回地图坐标vector2
-
focusGroupID
-
当前视线锁定的楼层, 需要注意groupID有效, 防止引起不必要的错误。
Properties:
Name Type Description focusGroupIDnumber 楼层id
-
fullScreen
-
全屏设置
Properties:
Name Type Description 是否全屏bool -
gestureEnableController
-
获取地图的手势控制类
Properties:
Name Type Description 获取地图手势控制类fengmap.FMMapGestureEnableController -
readonlygroupIDs
-
获取当前地图的所有楼层groupID的集合
Properties:
Name Type Description groupIDsarray -
groupSpace
-
楼层间距
Properties:
Name Type Description groupSpacenumber 楼层间距
-
hoverFilterFunction
-
过滤设置可悬停拾取函数。可通过过滤设置模型的可悬停拾取和不可悬停拾取。
Properties:
Name Type Description hoverFilterFunctionfunction 该方法返回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 labelLanguagefengmap.FMLanguageType "ZH"代表中文,"EN"代表英文
-
layerRenderOrder
-
layer渲染顺序等级。等级越高越后渲染,显示在上方(在深度检测开启后无效。一般作用于覆盖物layer之间的显示顺序)
-
mapScale
-
地图缩放比例
Properties:
Name Type Description mapScalenumber 表示当前的比例尺为: 1:mapScale
-
mapScaleLevel
-
设置地图缩放等级
Properties:
Name Type Description mapScaleLevelnumber -
maxScale
-
最大缩放比例
Properties:
Name Type Description maxScalenumber -
maxScaleLevel
-
最大缩放等级
Properties:
Name Type Description maxScaleLevelnumber -
maxTitleAngle
-
maxTitleAngle
Properties:
Name Type Description maxTitleAnglenumber 地图的最大倾斜角度
-
readonlymaxX
-
获取地图坐标x轴最大值
Properties:
Name Type Description maxXnumber -
readonlymaxY
-
获取地图坐标y轴最大值
Properties:
Name Type Description maxYnumber -
minScale
-
最小缩放比例
Properties:
Name Type Description minScalenumber -
minScaleLevel
-
最小缩放等级
Properties:
Name Type Description minScaleLevelnumber -
minTitleAngle
-
minTitleAngle
Properties:
Name Type Description minTitleAnglenumber 地图的最小倾斜角度
-
readonlyminX
-
获取地图坐标x轴最小值
Properties:
Name Type Description minXnumber -
readonlyminY
-
获取地图坐标y轴最小值
Properties:
Name Type Description minYnumber -
pickFilterFunction
-
过滤设置可点击拾取函数。可通过过滤设置模型的可点击拾取和不可点击拾取。
Properties:
Name Type Description pickFilterFunctionfunction 该方法返回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 rotateAnglenumber 旋转度,取值范围 -360 - 360
-
readonlyscaleLevel
-
当前缩放等级
Properties:
Name Type Description scaleLevelnumber 默认范围为:16 - 23
-
showCompass
-
是否显示指北针
Properties:
Name Type Description showCompassbool 默认值:false。
-
themeName
-
主题设置
Properties:
Name Type Description themeNamestring 主题名如"2002"、"2003",默认值:‘2001’
-
tiltAngle
-
倾斜度
Properties:
Name Type Description tiltAnglefloat 取值范围 minTitleAngle - maxTitleAngle
-
viewMode
-
视图模式
Properties:
Name Type Description viewModefengmap.FMViewMode FMViewMode类型。默认值:fengmap.FMViewMode.MODE_3D
-
visibleGroupIDs
-
设置可见的楼层集合
Properties:
Name Type Description visibleGroupIDsarray 例:[1,2,3]
Methods
-
addLocationMarker(marker)
-
添加locationMarker
Name Type Description markerfengmap.FMLocationMarker locationMarker实例
-
callAllLayersByAlias(alias, back)
-
根据别名遍历对应layer
Name Type Description aliasstring 别名,供设置的值有:'extent' | 'model' | 'label' | 'facility' | 'textMarker' | 'imageMarker' | 'externalModel'
backfucntion 回调函数
Name Type Description layerobject 回调返回参数,查询到的某一楼层的图层
-
clearLineMark(marker)
-
清除路径线
Name Type Description markerundefined | array.<fengmap.FMLineMarker> 可选。如不传该参数表示移除所有FMLineMarker,如果为数组则移除数组内的FMLineMarker。
-
coordMapToScreen(x, y, z)
-
地图坐标转屏幕坐标
Name Type Description xnumber 地图坐标x
ynumber 地图坐标y
znumber 高度z
-
coordScreenToMap(x, y, z, isFloat, giveMeRaw){json}
-
屏幕坐标转地图坐标
Name Type Description xnumber 屏幕x值
ynumber 屏幕y值
znumber 地图高度
isFloatbool 是否使用屏幕像素坐标系 默认false
giveMeRawbool 是否返回三维空间坐标 默认false
Returns:
Type Description json 返回对应的地图坐标 -
dispose()
-
释放内存
-
drawLineMark(line, style, back)
-
画出线
Name Type Description linefengmap.FMLineMarker FMLineMarker对象
stylejson 线形的样式
Name Type Description lineTypefengmap.FMLineType 线型
colorstring 只支持修改非FMARROW线型的线的颜色。
smoothboolean 是否开启平滑线功能
lineWidthnumber 设置线宽
mapUrlstring 线贴图路径
godColorstring 设置FMARROW线型线的颜色,十六进制颜色值。如:'#FF0000'。
godEdgeColorboolean 设置FMARROW线型线边线的颜色,十六进制颜色值。如:'#FF0000'
noAnimateboolean 设置导航线的动画。【 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 autoRotateBymodelbool -
getAutoRotateBymodelSpeed()
-
返回模型旋转速度
Properties:
Name Type Description speednumber 速度
-
getDatasByAlias(gid, alias, filter){array}
-
根据类型别名获取指定楼层上面的某图层数据
Name Type Description gidnumber 楼层id
aliasstring 别名,供设置的值有:'extent' | 'model' | 'label' | 'facility' | 'textMarker' | 'imageMarker' | 'externalModel'
filterfunction 过滤函数
Returns:
Type Description array 地图元素数据 -
getEffectRenderer(){fengmap.FMEffectRenderer}
-
获得EffectRenderer
Returns:
Type Description fengmap.FMEffectRenderer -
getFMGroup(gid){fengmap.FMGroup}
-
通过id获取对应楼层对象
Name Type Description gidnumber 楼层id
Returns:
Type Description fengmap.FMGroup -
getLayerByAlias(gid, alias, back){array}
-
获取对应楼层别名为alias的layer
Name Type Description gidnumber 楼层id
aliasstring 图层别名,供设置的值有:'extent' | 'model' | 'label' | 'facility' | 'textMarker' | 'imageMarker' | 'externalModel'
backfunction 回调函数
Returns:
Type Description array layers -
getRotationCoord(x, y){json}
-
获取正确坐标的方法,当设置地图绕中点旋转设置之后,通过mapClickNode事件获取坐标需要调用此方法
Name Type Description xnumber 地图坐标x
ynumber 地图坐标y
Returns:
Type Description json 返回旋转后的地图坐标 -
getScalelevelValueByVectics(startPnt, endPnt){number}
-
根据矩形左下角坐标和右上角坐标获取地图当前的显示级别
Name Type Description startPntjson 左下角坐标
endPntjson 右上角坐标
Returns:
Type Description number level -
getScaleValueByVectics(startPnt, endPnt){number}
-
根据矩形左下角坐标和右上角坐标获取地图当前的显示比例尺
Name Type Description startPntjson 左下角坐标
endPntjson 右上角坐标
Returns:
Type Description number 比例尺 -
getSearchObjects(results)
-
返回根据搜索结果查询到的对象
Name Type Description resultsArray 搜索结果数组
-
getVisibleGroups()
-
显示楼层获取。返回楼层数组
-
moveTo(opts)
-
地图中心移动到指定点,如果groupID和当前聚焦层不一致,会自动切换至groupID楼层,此时不要和focusGroupID组合调用。
Name Type Description optsjson Name Type Description xfloat 地图坐标x值。
yfloat 地图坐标y值。
zfloat 地图坐标z值。
groupIDint 楼层id,跳转到指定位置,并聚焦该楼层。
timeint 目标层不是聚焦层时跳转的动画时间间隔。
callbackfunction 完成moveTo事件后的回调,返回目标层gid。
-
moveToCenter(gid)
-
移动地图至楼层的中心点
Name Type Description gidint 目标楼层id。
-
off(type, back)
-
地图事件移除
Name Type Description type* 事件类型
back* 回调函数
-
on(type, back)
-
地图事件注册
Name Type Description type* 事件类型
back* 回调函数
-
openMapById(sceneId, failed)
-
通过sceneId加载地图。
Name Type Description sceneIdnumber 场景Id
failedfunction 失败返回函数
-
Printing(callback)
-
地图打印功能
Name Type Description callbackfunction 回调函数,参数为截图blob数据
-
removeLineMarker(marker)
-
清除某条路径线
Name Type Description markerfengmap.FMLineMarker 移除当前的某条线FMLineMarker。
-
removeLocationMarker(marker)
-
删除locationMarker
Name Type Description markerfengmap.FMLocationMarker locationMarker实例
-
rotateTo(param)
-
旋转到对应角度
Name Type Description paramjson {to: 45, duration: 1, callback: function() {}}
Name Type Description tonumber 转至角度
durationnumber 动画时间
callbackfunction 回调函数
-
scaleLevelIn()
-
scalelevel等级降低
-
scaleLevelOut()
-
scalelevel等级提高
-
scaleLevelTo(params)
-
定位到某个级别
Name Type Description paramsjson Name Type Description durationfloat 动画时间
levelfloat 缩放级别
updatefloat 动画执行时回掉。
opts.callbackfunction 完成moveTo事件后的回调,返回目标层gid。
-
scaleTo(params)
-
缩放到对应值
Name Type Description paramsjson Name Type Description durationfloat 动画时间
scalefloat 缩放值
updatefloat 动画执行时回掉。
opts.callbackfunction 完成moveTo事件后的回调,返回目标层gid。
-
screenshot(pos1, pos3, direction, rank, callback)
-
打印截图
Name Type Description pos1number 选框左上角点坐标
pos3number 选框右下角点坐标
directionbool 打印纸张方向,【true】:纵向打印,【false】:横向打印。缺省为根据打印截图的宽高自动判断
rankint 打印等级,等级越高,质量越高(1-5) 通常这个值应设置为3
callbackfunction 截图成功后回调函数,第1(base64),2(bolb)个参数为打印截图。第3(base64),4(bolb)个参数为框选截图
-
setAutoRotateBymodel(isrote)
-
设置模型绕中心旋转
Name Type Description isrotebool 【true】:绕中心旋转,【false】:不旋转
-
setAutoRotateBymodelSpeed()
-
设置模型旋转速度
Properties:
Name Type Description speednumber 速度
-
setBackgroundColor(color, alpha)
-
背景色与透明度设置
Name Type Description colorstring | int 颜色值0xFF0000 | '#FF0000'
alphanumber 透明度,取值范围:0.0 - 1.0
-
setMapScaleLevelRange(min, max)
-
设置地图比例尺 级别 范围
Name Type Description minnumber 最小等级
maxnumber 最大等级
-
setMapScaleRange(min, max)
-
地图缩放比例范围设置
Name Type Description minnumber 最小比例
maxnumber 最大比例
-
setModelSelectColor(color, alpha)
-
设置模型拾取颜色
Name Type Description colorstring | number 十六进制颜色值或CSS颜色样式: 0xFF0000 | '#FF0000'
alphanumber 透明度。在0 ~ 1之间取值。
-
setVisibleGroups()
-
设置显示楼层,楼层id数组
-
tiltTo(params)
-
倾斜到对应角度
Name Type Description paramsjson {to: 45, duration: 1, callback: function() {}}
Name Type Description tonumber 移动到的角度值
durationnumber 动画时间
callbackfunction 回调函数
-
zoomIn()
-
地图动画放大
-
zoomOut()
-
地图动画缩小
Events
-
focusGroupIDChanged
-
聚焦楼层改变事件
Type:
- json
Properties:
Name Type Description typestring "focusGroupIDChanged"
gidnumber 改变后的聚焦楼层goupID。
-
gltfLoaded
-
外部模型加载完成事件
-
loadComplete
-
地图加载完成事件
-
mapClickNode
-
地图点击事件。默认所有地图元素均可点击拾取,可通过fengmap.FMMap属性pickFilterFunction设置某些地图元素的不可点击拾取属性。
Type:
- json
Properties:
Name Type Description typestring "mapClickNode"
targetfengmap.FMNode 当前点击拾取到的fengmap.FMNode对象。当nodeType !== 0时,target 包含FMNode对象的属性。如下:
Properties
Name Type Description FIDstring 模型的唯一编码
groupIDnumber 当前楼层
heightnumber FMNode对象的高度
typeIDnumber FMNode对象的类型ID
mapCoordjson 当前对象对应的中心点坐标
showboolean 是否显示
minlevelnumber 最小显示级别
maxlevelnumber 最大显示级别
xnumber x坐标
ynumber y坐标
znumber z坐标
domEventMouseEvent 当前触发点击的鼠标或触摸事件,包含点击位置的屏幕坐标,domElement等信息。
eventInfojson 封装根据当前触发点击事件计算后的一些属性。
Properties
Name Type Description domEventMouseEvent 当前触发点击的鼠标或触摸事件,包含点击位置的屏幕坐标,domElement等信息。
coordjson 点击位置的地图坐标。
nodeTypefengmap.FMNodeType 当前触发点击事件拾取到的结点类型。
-
mapHoverNode
-
地图hover事件,默认不开启,可通过fengmap.MapOptions中的modelHoverEffect:true开启、或通过map.hoverFilterFunction方法针对不同的模型开启hover事件。mapHoverClickNode事件的返回值和mapClickNode相同。
Type:
- json
-
mapScaleLevelChanged
-
地图级别变化时的回调。
Type:
- json
Properties:
Name Type Description typestring "mapScaleLevelChanged"
scalenumber 改变后的比例尺级别。
-
scaleLevelChanged
-
地图比例尺级别变化时的回调。
Type:
- json
Properties:
Name Type Description typestring "scaleLevelChanged"
scalenumber 改变后的比例尺级别。
-
visibleGroupIDsChanged
-
地图可见楼层ID发生变化时的回调。
Type:
- json
Properties:
Name Type Description typestring "visibleGroupIDsChanged"
gidsarray 改变后的可见楼层ID数组。
-
visibleGroupLoaded
-
开启分层加载时,显示楼层加载完成事件