Class: FMNavigationWalk

FMNavigationWalk

FMNavigationWalk 是人行导航相关的功能类, 可用于模拟导航和真实导航使用。 属于fengmap.plugins.min.js

new fengmap.FMNavigationWalk(options)

构造方法

Name Type Description
options Object
Name Type Description
map fengmap.FMMap

导航类关联地图对象, 必要参数, 不可缺失。

analyser fengmap.FMNaviAnalyser | Object

fengmap.FMNaviWalkAnalyser 人行导航类路径分析代理对象, 必要参数, 不可缺失。

imageMarkerHeight number

图片标注的与楼层之间的高度偏移设置。默认是6。

locationMarkerUrl number

模拟导航定位标注使用的图片资源URL。

locationMarkerSize number

模拟导航定位标注的大小。默认是100。

locationMarkerHeight number

定位标注与楼层之间的高度偏移设置。默认是3。

lineStyle Object

路径线线型设置, 详细内容参照FMLineMarker中的参数设置fengmap.FMLineMarker

lineMarkerHeight number

导航线与楼层之间的高度偏移设置, 默认为1。

linePassed boolean

经过的路线置为灰色,默认为true。

Members

locationMarker

导航所用到的FMLocationMarker对象

Properties:
Name Type Description
locationMarker fengmap.FMLocationMarker

路径规划结果。

Properties:
Name Type Description
naviResult Object
Properties
Name Type Description
distance number

路线总距离。

buildings array

按照起终点顺序依次经过的建筑、楼层和距离信息数组。

buildings[].distance number

建筑内路线的距离。

buildings[].levels array

建筑内按照起终点顺序路线所经过的楼层level数组。

buildings[].buildingID string

建筑ID.

subs array

路线分段数据。

subs[].distance number

路段的距离。

subs[].buildingID string

路段所在的建筑ID。

subs[].levels object

路段经过的楼层,含两个元素的数组,当元素值不相等的时候,标志着是跨层路段。

subs[].instruction object

路段描述信息{'zh':中文描述内容,'en':英文描述内容}。

subs[].transfer fengmap.FMNaviTransfer

路段换乘节点枚举值, 详情参考FMNaviTransfer。

subs[].waypoint object

路段途经信息。

Properties
Name Type Description
direction object

路段地理方向和相对方位描述。{'zh':[中文方向,中文方位],'en':[英文方向,英文方位]}。

points array

路段坐标点集合,可用于路线绘制和约束计算。

subs[].viapoint array

路段经过的途经点,与传入参数内容一致。

door object

门点

Methods

inherited clearAll()

清空导航类中的起始点标注, 定位标注及当前路线标注。

inherited clearLocationMarker()

清除定位标注。

inherited clearMarkers()

清空导航类中的起终点标注

inherited clearNaviLine()

清除上次调用drawNaviLine绘制的导航线。

inherited dispose()

释放fengmap._map对象引用和内存占用。

inherited drawNaviLine(options){fengmap.FMLineMarker}

设置完起始点后, 如果路径规划成功, 调用此方法画出导航线。需要在画线之前主动调用route方法。

Name Type Description
options Object

线绘制参数

Name Type Description
style Object

线样式, 如不设置则使用初始化设置。详细内容参照FMLineMarker中的参数设置fengmap.FMLineMarker

height number

线高度,如不设置则使用初始化设置。

passed boolean

经过的路线是否置为灰色。如不设置则使用初始化设置。

Returns:
Type Description
fengmap.FMLineMarker 返回当前绘制的线对象

inherited focusNaviLineSegment(index, options, finish)

地图显示范围聚焦到索引为值等于index的路段, 路段信息来至于naviDescriptionsData。

Name Type Description
index int

路段下标

options Object

聚焦参数

Name Type Description
ratio Object

聚焦比率,1.0为铺满全屏,小于1时占用屏幕更小的范围进行显示。

rotation Object

地图旋转角度。默认为0。

tilt Object

地图倾斜角度。默认为30。

finish function

聚焦动画结束回调。

inherited getSpeed()

获取当前模拟导航速度

inherited locate(coords, heading)

用于真实导航, 设置定位系统所返回的真实定位坐标, 内部自动路径约束, 同时触发walking事件, walking事件中返回如下结果: {distance: 定位点到最近路径的距离, remain: 到终点的剩余距离, walk: 已经走过的距离, distanceToNext: 是下一个转角处的距离, angle: 当前路线与正北方向的角度, index: 当前路段的索引, point: 路径约束后的点, level: 当前的楼层id, buildingID: 当前的建筑id}

Name Type Description
coords Object

定位系统返回并经过坐标转换后的定位点坐标如:{x:,y:,level:,buildindID: },当不存在buildingID时,默认为园区。

heading number

角度值, 如:45,默认使用路径约束结果

inherited locateNoConstraint(coords, heading)

用于真实导航, 设置定位系统所返回的真实定位坐标, 内部无路径约束, 同时触发walking事件, walking事件中返回如下结果: {distance: 定位点到最近路径的距离, remain: 到终点的剩余距离, walk: 已经走过的距离, distanceToNext: 是下一个转角处的距离, angle: 当前路线与正北方向的角度, index: 当前路段的索引, point: 路径约束后的点, level: 当前的楼层id, buildingID: 当前的建筑id}} 此方法与locate的区别为使用未约束的定位原始坐标显示定位位置, 内部仍会进行约束计算。

Name Type Description
coords Object

定位系统返回并经过坐标转换后的地图坐标点如:{x:,y:,level:,buildindID:},当不存在buildingID时,默认为园区。

heading number

角度值, 如: 45,可选参数。

路径规划完成后, 进行导航约束, 根据传入的定位点坐标, 返回约束点信息, 具体见返回对象的属性

Name Type Description
coords object

{x: ,y: , level: ,buildingID: },当不存在buildingID时,默认为园区。

Returns:
Type Description
object {coords:, distance:, index:, remain:, angle: } coords: 定位点到离它最近路径的垂点的坐标 {x:, y:, level:, buildingID:,}, distance: 定位点与垂点的距离, index: 垂点所在的路段索引,返回-1时表示约束失败, remain: 导航的剩余距离, angle: 所在路段与正北方向的角度值

off(type, callback)

导航事件销毁

Name Type Description
type string

支持'walking'、'transit'、'complete'。

callback function

事件回调函数

on(type, callback)

导航事件注册 同一事件支持多次绑定

Name Type Description
type string

支持'walking'、'transit'、'complete'。

callback function

事件回调函数

inherited overview(options, callback)

自适应路线全览

Name Type Description
options Object

自适应参数

Name Type Description
ratio Object

全览比率,1.0为铺满全屏,值越大全览看到的地图范围越大(对应的显示级别取值越小);值越小全览看到的地图范围越小(对应的显示级别取值越大)

rotation Object

地图旋转角度。默认为0。

tilt Object

地图倾斜角度。默认为30。

callback function

自适应全览动画结束回调。

inherited pathConstraint(coords){object}

全路网路径约束

Name Type Description
coords object

{x: ,y: , level: ,buildingID:} 指定点坐标, 当不存在buildingID时,默认为园区。

Returns:
Type Description
object {coords: , distance:, angle, road: } 约束点信息,具体如下 coords: object, 指定点到最近路径的垂点坐标 {x:, y:, level}, 最近的路径为约束路径 distance: number, 指定点与垂点的距离, angle: number, 约束路径与正北方向的角度值 road: object, 约束路径的信息 buildingID: 当不存在buildingID时,默认为园区

inherited pause()

暂停模拟导航

inherited resume()

恢复模拟导航

inherited route(options, success, failed)

路径规划计算方法,设置好起终点后需要调用该方法进行路径规划计算。

Name Type Description
options object

计算参数对象

Name Type Description
toDoors boolean

路径计算结果是否到达门点停止。默认为false。

request.viapoints array

[{x,y,level,buildingID,...},...]途经点数组,除x,y,level途经点坐标必须参数内容,当不存在buildingID时,默认为园区,可以增加扩展信息。

mode fengmap.FMNaviMode

路径规划策略,默认受构造函数参数影响, 详情参考FMNaviMode。

priority fengmap.FMNaviPriority

路径规划梯类优先级, 默认受构造函数参数影响, 详情参考FMNaviPriority。

success function

计算成功回调,返回计算结果。计算结果可以通过naviResult属性获取。

failed function

计算失败回调,返回fengmap.FMRouteResult枚举。

inherited setDestPoint(data, noMarker){fengmap.FMImageMarker}

设置终点

Name Type Description
data Object

导航终点参数对象。

Name Type Description
x number

终点地图坐标X。

y number

终点地图坐标Y。

level number

终点楼层level。

buildingID string

终点建筑ID。

height number

终点地图坐标距离楼层地面的高度. 如果不设置该属性, 使用FMNavigaiton的属性imageMarkerHeight。

url string

终点标注图片路径, 如不设置, 且使用之前设置的图片, 只是设置其位置。

size number

终点标注图片大小。

anchor FMMarkerAnchor

{FMMarkerAnchor} 锚点位置,默认为BOTTOM。

depth bool

渲染深度,true:开启深度,false:关闭深度,默认为false。

collision bool

避让,true:开启避让,false:关闭避让,默认为false。

noMarker bool

是否不生成Marker对象, 不设置或者为true时, 设置起点不会生成图片标注。

Returns:
Type Description
fengmap.FMImageMarker 返回添加成功的imageMarker对象, noMarker不设置或者为true时, 返回null。

inherited setLanguage(language)

设置当前导航中的文字描述语言类型。

Name Type Description
language fengmap.FMLanguageType

目前支持中英文。如果路径规划成功, 会自动更新naviDescriptions和naviDescriptionDatas数据。

inherited setSpeed(speed)

设置模拟导航速度

Name Type Description
speed number

模拟导航速度。

inherited setStartPoint(data, noMarker){fengmap.FMImageMarker}

设置起点

Name Type Description
data Object

导航起点参数对象。

Name Type Description
x number

起点地图坐标X。

y number

起点地图坐标Y。

level number

起点楼层level。

buildingID string

起点建筑ID, 当起点不在建筑内则不设置。

height number

起点地图坐标距离楼层地面的高度. 如果不设置该属性, 使用FMNavigaiton的属性imageMarkerHeight。

url string

起点标注图片路径, 如不设置, 且使用之前设置的图片, 只是设置其位置。

size number

起点标注图片大小。默认大小64。

anchor FMMarkerAnchor

{FMMarkerAnchor} 锚点位置,默认为BOTTOM。

depth bool

渲染深度,true:开启深度,false:关闭深度,默认为false。

collision bool

避让,true:开启避让,false:关闭避让,默认为false。

noMarker bool

是否不生成Marker对象, 不设置或者为true时, 设置起点不会生成图片标注。

Returns:
Type Description
fengmap.FMImageMarker 返回添加成功的FMImageMarker对象, noMarker不设置或者为true时, 返回null。

inherited simulate(options)

Name Type Description
options Object

模拟导航参数。

Name Type Description
speed number

模拟导航定位图标行进的速度, 单位m/s。默认5m/s。

followPosition boolean

模拟导航中在位置发生变化时, 地图是否跟随位置居中显示。默认true。

followAngle boolean

模拟导航中在方向发生变化时, 地图是否跟随方向变化, 保持路线朝向屏幕上方。 默认false。

changeTiltAngle boolean

模拟导航中楼层发生变化时是否改变地图的倾斜角度, 并执行动画。默认为true。

zoom number

模拟导航开始时地图的显示缩放级别, 默认值为21, 表示1:282的地图比例尺。

maxZoom number

模拟导航开始时地图的显示最大缩放级别, 默认值为22, 表示1:141的地图比例尺。防止视角过近。

inherited stop()

停止模拟导航

Events

complete

模拟导航结束事件, 真实导航不会触发该事件。需要开发者根据waliking事件的返回内容, 进行业务处理。

Type:
  • void

transit

模拟导航中的跨层事件

Type:
  • number
Properties:
Name Type Description
level number

当前楼层ID.

walking

导航过程中位置发生变化时触发的事件, 模拟导航与真实导航调用locate后都都会触发。

Type:
  • Object
Properties:
Name Type Description
buildingID string

当前的建筑id。

walk number

已经走过的距离。

remain number

到终点的剩余距离。

distance number

定位点的路线偏移距离。

distanceToNext number

到下一个转角处的距离。

angle number

当前路线与正北方向的角度。

point object

导航约束后的点。

buildingID string

当前的建筑id,当不存在时为园区。

level number

当前的楼层id。

index number

当前路段的索引。