FMNavigation 导航相关的控制类,封装了自动设置起始点标注,路径分析,模拟导航,导航动画的功能。

模块: Navigation

实例化

fengmap.FMNavigation

fengmap.FMNavigation
(
  • options
)

参数:

名称类型标记描述
options fengmap.NaviOptions

naviOptions对象

名称类型标记描述
map fengmap.FMMap

地图对象,必须的设置

speed Float

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

followPosition Boolean

模拟导航时是否地图跟随,默认true

followAngle Boolean

模拟导航时是否改变地图角度,默认false

changeTiltAngle Boolean

是否在导航开始时改变地图的倾斜角度

scaleLevel Number

模拟导航开始时地图的显示级别,默认1

offsetHeight Number

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

lineStyle Json

路径线线型设置

示例:

//初始化模拟导航对象
var navi = new fengmap.FMNavigation({
    map: map, //当前的fengmap.FMMap对象
    locationMarkerUrl: 'image/pointer.png', //导航图标
    //设置Marker尺寸
    locationMarkerSize: 43,
    //模拟导航下,设置跟随定位的默认为true
    followPosition: true,
    //模拟导航下,设置地图是否选择,默认false    
    followAngle: true,
    //模拟导航下,导航跟随倾斜角度        
    tiltAngle: 80,
    //模拟导航下,导航跟随显示级别
    scaleLevel: 0,
    // 设置导航线的样式
    lineStyle: {
        // 导航线样式(箭头)
        lineType: fengmap.FMLineType.FMARROW,
        // 设置线的宽度
        lineWidth: 6,
    }
});

clearAll

clearAll ()

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

drawNaviLine

drawNaviLine () fengmap.FMLineMarker

设置完起始点后,调用此方法画出导航线

Returns:

[fengmap.FMLineMarker]

返回当前绘制的线对象

focusNaviLineSegment

focusNaviLineSegment
(
  • index
  • options
)

聚焦到点击的路段

参数:

名称类型标记描述
index Int

路段下标

options Json

聚焦参数

名称类型标记描述
duration Float

聚焦时的过渡动画效果设置

callback Function

聚焦完成后的事件回调

locate

locate
(
  • coord
  • [angle]
)

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

参数:

名称类型标记描述
coord JSON

定位系统返回并经过坐标转换后的地图坐标点如:{x:1,y:1,groupID:1}

[angle] Float 可选的

角度值,如:45,可选

locateNoConstraint

locateNoConstraint
(
  • coord
  • cc
  • [angle]
)

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

参数:

名称类型标记描述
coord fengmap.MapCoord

定位系统返回并经过坐标转换后的地图坐标点

cc Json

根据coord坐标,通过约束方法naviConstraint计算的约束后的对象。

[angle] Float 可选的

角度值,如:45,可选

naviConstraint

naviConstraint
(
  • coord
)
JSON

在路径规划完成后,得到当前实际的定位点与路径上的最近点及与这个点之间的距离

参数:

名称类型标记描述
coord JSON

{x: ,y: , groupID: }

Returns:

[JSON]

{coord: , distance:, index:, remain, angle} coord: 垂点的坐标 {x:, y:, groupID}, distance: 指定点与垂点的距离, index: 当前的点所在的线段索引, remain: 导航的剩余距离, angle: 所在路段与正北方向的角度值

pathConstraint

pathConstraint
(
  • coord
)
JSON

全路网路径约束

参数:

名称类型标记描述
coord JSON

{x: ,y: , groupID: }

Returns:

[JSON]

{coord: , distance:, road:, angle} coord: 垂点的坐标 {x:, y:, groupID}, distance: 指定点与垂点的距离, road: 当前的点所在路段, angle: 所在路段与正北方向的角度值

setEndPoint

setEndPoint
(
  • options
  • noMarker
)
fengmap.FMImageMarker

设置终点

参数:

名称类型标记描述
options Json

endPoint参数对象

名称类型标记描述
x Float

结束坐标点x坐标

y Float

结束坐标点y坐标

groupID Number

结束坐标点楼层ID

url String

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

size Number

结束坐标点标注图片大小

callback Fuction

结束坐标点标注添加成功回调

noMarker Bool

不自动生成Marker对象, 默认为false

Returns:

[fengmap.FMImageMarker]

FMImageMarker 表示添加成功的imageMarker对象

setStartPoint

setStartPoint
(
  • options
  • noMarker
)
fengmap.FMImageMarker

设置起点

参数:

名称类型标记描述
options Json

endPoint参数对象

名称类型标记描述
x Float

起点坐标点x坐标

y Float

起点坐标点y坐标

groupID Number

起点坐标点楼层ID

url String

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

size Number

起点坐标点标注图片大小

callback Fuction

起点坐标点标注添加成功回调

noMarker Bool

不自动生成Marker对象, 默认为false

Returns:

[fengmap.FMImageMarker]

FMImageMarker 表示添加成功的imageMarker对象

simulate

simulate ()

设置完起始点后,开始模拟导航,调用此方法会自动画线,不需要在调用drawNaviLine方法

stop

stop ()

停止模拟导航

endMarker

fengmap.FMImageMarker

结束点所使用的imageMarker对象

locationMarker

fengmap.FMLocationMarker

导航所用到的locationMarker对象

naviDescriptions

Array

得到此导航路径的文字描述字符串数组

naviDescriptionsData

Array

路径描述的JSON数组, 用户可以根据里面的数据,自己组织描述语言

naviDistance

Float

得到此导航路径的总距离

naviGroupsDistance

JSON

路径所经过层对应在各楼层的距离长度: 如:[{groupID: 1, distance: 103.56}, {groupID: 3, distance: 103.56}, {groupID: 1, distance: 53.56}]

startMarker

fengmap.FMImageMarker

起始点所使用的imageMarker对象

complete

模拟导航完成事件

示例:

//导航路径结束事件
navi.on('complete', function() {
    //模拟导航结束
    console.log('navigation complete');
});

crossGroup

模拟导航中跨层事件

示例:

//路径跨楼层事件
navi.on('crossGroup', function(groupID) {
    //groupID 改变了
});

walking

导航正在进行中的事件,模拟导航中会持续自动调用,真实导航下,通过方法locate回调。

示例:

// 设置导航事件
navi.on('walking', function(data) {
    //导航实时规划中,data为当前的导航数据
    console.log(data);
});
Top