new fengmap.FMNavigationDrive(options)
构造方法
Name | Type | Description | |||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
|
Members
-
lineFillMode
-
导航线置灰模式,可以设置fengmap.FMPassedLineFillMode.Auto和fengmap.FMPassedLineFillMode.SpecifiedDistance,默认Auto
Properties:
Name Type Description lineFillMode
fengmap.FMPassedLineFillMode -
locationMarker
-
导航所用到的FMLocationMarker对象
Properties:
Name Type Description locationMarker
fengmap.FMLocationMarker -
readonlynaviResult
-
路径规划结果。
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 路段经过的途经点,与传入参数内容一致。
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()
-
获取当前模拟导航速度
-
locate(coords, heading)
-
用于真实导航, 设置定位系统所返回的真实定位坐标, 内部自动路径约束, 同时触发driving事件, driving事件中返回如下结果: {remain: 到终点的剩余距离, drive: 已经行驶过的距离, distanceToNext: 是下一个转角处的距离, angle: 当前路线与正北方向的角度, index: 当前路段的索引, point: 路径约束后的点, level, 当前的楼层id, buildingID: 当前的建筑id}
Name Type Description coords
Object 定位系统返回并经过坐标转换后的地图坐标点如:{x:,y:,level:,buildingID: },当不存在buildingID时,默认为园区。
heading
number 角度值, 如:45,默认使用路径约束结果
-
locateNoConstraint(coords, heading)
-
用于真实导航, 设置定位系统所返回的真实定位坐标, 内部无路径约束, 同时触发driving事件, driving事件中返回如下结果: {distance: 定位点到最近路径的距离, remain: 到终点的剩余距离, drive: 已经走过的距离, distanceToNext: 是下一个转角处的距离, angle: 当前路线与正北方向的角度, index: 当前路段的索引, point: 路径约束后的点, level, 当前的楼层id, buildingID: 当前的建筑id} 此方法与locate的区别为使用未约束的定位原始坐标显示定位位置, 内部仍会进行约束计算。
Name Type Description coords
Object 定位系统返回并经过坐标转换后的地图坐标点如:{x:,y:,level:,buildingID: },当不存在buildingID时,默认为园区。
heading
number 角度值, 如: 45,可选参数。
-
inherited naviConstraint(coords){object}
-
路径规划完成后, 进行导航约束, 根据传入的定位点坐标, 返回约束点信息, 具体见返回对象的属性
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 支持'driving'、'transit'、'complete'。
callback
function 事件回调函数
-
on(type, callback)
-
导航事件注册 同一事件支持多次绑定
Name Type Description type
string 支持'driving'、'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()
-
恢复模拟导航
-
route(options, success, failed)
-
路径规划计算方法,设置好起终点后需要调用该方法进行路径规划计算。
Name Type Description options
object 计算参数对象
Name Type Description viapoints
array [{x,y,level,buildingID,order, ...},...]途经点数组,x,y,level为途经点坐标必须参数内容;当不存在buildingID时默认为园区,途经点在子地图内时buildingID必填;order为可选参数,用于指定途径点的到达顺序,数值越小优先级越高;此外,还可以增加途经点扩展信息。
mode
fengmap.FMNaviMode 路径规划策略,默认受构造函数参数影响, 详情参考FMNaviMode。
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 setObstructions(obstructions)
-
设置路径计算障碍数据。
Name Type Description obstructions
Array fengmap.FMNaviObstruction 障碍数据集合。
-
inherited setPassedLineDistance(distance)
-
通过传入已走过的距离置灰导航线,在options.lineFillMode为fengmap.FMPassedLineFillMode.SpecifiedDistance且linePassed为true时生效
Name Type Description distance
number 已走过的距离
-
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。 -
simulate(options)
-
Name Type Description options
Object 模拟导航参数。
Name Type Description speed
number 模拟导航定位图标行进的速度, 单位m/s。默认7m/s。
followPosition
boolean 模拟导航中在位置发生变化时, 地图是否跟随位置居中显示。默认true。
followAngle
boolean 模拟导航中在方向发生变化时, 地图是否跟随方向变化, 保持路线朝向屏幕上方。 默认false。
changeTiltAngle
boolean 模拟导航中楼层发生变化时是否改变地图的倾斜角度, 并执行动画。默认为true。
zoom
number 模拟导航开始时地图的显示缩放级别, 默认值为21, 表示1:282的地图比例尺。
maxZoom
number 模拟导航开始时地图的显示最大缩放级别, 默认值为22, 表示1:141的地图比例尺。防止视角过近。
-
inherited stop()
-
停止模拟导航
Events
-
complete
-
模拟导航结束事件, 真实导航不会触发该事件。需要开发者根据driving事件的返回内容, 进行业务处理。
Type:
- void
-
driving
-
导航过程中位置发生变化时触发的事件, 模拟导航与真实导航调用locate后都都会触发。
Type:
- Object
Properties:
Name Type Description buildingID
string 当前的建筑id。
drive
number 已经行驶过的距离。
remain
number 到终点的剩余距离。
distance
number 定位点的路线偏移距离。
distanceToNext
number 到下一个转角处的距离。
angle
number 当前路线与正北方向的角度。
point
object 导航约束后的点。
buildingID
string 当前的建筑id,当不存在时为园区。
level
number 当前的楼层id。
index
number 当前路段的索引。
-
transit
-
模拟导航中的跨层事件
Type:
- number
Properties:
Name Type Description level
number 当前楼层ID.