Class: FMNavigation

FMNavigation

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

new fengmap.FMNavigation(options)

构造方法

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

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

analyser fengmap.FMNaviAnalyser | Object

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

imageMarkerHeight number

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

locationMarkerUrl number

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

locationMarkerSize number

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

locationMarkerHeight number

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

lineStyle Object

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

lineMarkerHeight number

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

linePassed boolean

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

Deprecated
  • 3.1.5版本及以后版本将不可用。
    See:
    • FMNavigationWalk
    • FMNavigationDrive

    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
    walk number

    已经走过的距离。

    remain number

    到终点的剩余距离。

    distance number

    定位点的路线偏移距离。

    distanceToNext number

    到下一个转角处的距离。

    angle number

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

    point Object

    导航约束后的点。

    buildingID string

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

    level number

    当前的楼层id。

    index number

    当前路段的索引。