支持设置驾车、新能源车牌,需要在算路前设置。
const carInfo = new BNAbilityPlateNumberInfo('粤', 'A00000', -1, -1, -1) //车牌信息可见3. 车牌信息this.sdkService.routePlan.setPlateNumberInfo(carInfo)
const carInfo: BNAbilityPlateNumberInfo = this.sdkService.routePlan.getPlateNumberInfo()
class BNAbilityPlateNumberInfo {province: string //省份, 例如'粤'numberPlate: string //车牌号, 例如'A00000'powerType: BNPlateNumberCarPowerType = BNPlateNumberCarPowerType.non //车辆能源类型carType: BNPlateNumberCarType = BNPlateNumberCarType.non //是否皮卡类型etcInfo: BNPlateNumberETCInfo = BNPlateNumberETCInfo.non //是否支持etc信息constructor(province: string, numberPlate: string, powerType: BNPlateNumberCarPowerType = BNPlateNumberCarPowerType.non, carType: BNPlateNumberCarType = BNPlateNumberCarType.non, etcInfo: BNPlateNumberETCInfo = BNPlateNumberETCInfo.non) {}}enum BNPlateNumberCarPowerType {non = -1, //未知fuelVehicle, //油车electricVehicle, //纯电hybridElectricVehicle //混动}enum BNPlateNumberCarType {non = -1, //未知nonPickUpTruck, //非皮卡车pickUpTruck //皮卡车}enum BNPlateNumberETCInfo {non = -1, //未知enable, //有ETCunable //没有ETC}
支持设置算路偏好,需要在算路前设置。
const prefers: number[] = [1]; //偏好值可使用枚举,可参考3.偏好枚举this.sdkService.routePlan.setRoutePrefers(prefers)
const prefers: number[] = this.sdkService.routePlan.getRoutePrefers()
enum BNRoutePreferStatus {RECOMMEND = 0X00000001, // 智能推荐 1NO_HIGHWAY = 0X00000004, // 不走高速 4LESS_CHARGE = 0X00000008, // 少收费 8AVOID_JAM = 0X00000010, // 少拥堵 16TIME_FIRST = 0X00000100, // 时间优先 256HIGHWAY_FIRST = 0X00000200, // 高速优先 512}
偏好支持双选,多选规则如下:YES表示支持多选组合,NO表示不支持多选
| 路线偏好选择 | 智能推荐 | 躲避拥堵 | 时间优先 | 少收费 | 不走高速 | 高速优先 |
|---|---|---|---|---|---|---|
| 智能推荐 | - | - | - | - | - | - |
| 躲避拥堵 | NO | - | - | - | - | - |
| 时间优先 | NO | YES | - | - | - | - |
| 少收费 | NO | YES | YES | - | - | - |
| 不走高速 | NO | YES | YES | YES | - | - |
| 高速优先 | NO | YES | YES | NO | NO | - |
三选组合仅支持:躲避拥堵+少收费+不走高速
算路结果会根据实际情况存在会返回多条路线的情况,算路结果返回后需要设置当前路线,或者可支持用户操作切换当前路线
切换路线有两种方式:const result: BNIRouteItem[] = xxxxxx //算路结果返回的数据,需要设置算路结果中的第一天路线为当前路线时:方式1:根据路线在路线结果数组中的下标索引进行设置this.sdkService.routePlan.selectRoute(result[0].idx)orthis.sdkService.routePlan.selectRoute(0)方式2:根据路线的mrsl(唯一标识字符串)进行设置this.sdkService.routePlan.selectRouteByMrsl(0, result[0].mrsl)
const idx = this.sdkService.routePlan.getSelectRouteIdx() //-1表示获取失败
设置地图(导航)模式,针对不同的模式会有不同的展示策略。 当前仅支持Normal 驾车导航场景, Route 导航路线(算路)页场景;导航页组件内部会设置成Normal模式, 如果需要实现算路结果页展示路线,需设置为Route。
this.sdkService.map.setNaviMode(BNAbilityNaviMode.Route) //仅支持Normal 和 Route/** 导航模式 */export enum BNAbilityNaviMode {Invalid = 0, //未定义Normal = 1, //普通导航Route = 5, //驾车路线页}
设置是否显示路况,即地图是否显示拥堵情况。
this.sdkService.map.showTrafficMap(true) //设置是否显示路况, true为显示,false为隐藏
设置算路的路线(蚯蚓)的显示与隐藏,通常在开始算路之前设置隐藏,算路成功之后设置显示。 注意:如果在发起导航之前设置了隐藏蚯蚓,那么在发起导航时需要设置蚯蚓展示,否则在导航页看不到蚯蚓。
const show: boolean = true //是否显示路线图层,true表示显示,false表示隐藏。const isAnimation: boolean = false //是否启用动画效果,非必要的情况下传falsethis.sdkService.map.showRouteLayer(show, isAnimation);
设置地图是否浏览态,true为浏览态,false为非浏览态。处于浏览态时,可手势操作地图,否则地图不可操作,显示车标在内的固定区域。
this.sdkService.map.setBrowseStatus(true)
全图展示模式,常见的使用场景:导航路线页需要设置路线居中且全图展示,展示路线全貌
const isAnimation: boolean = false //是否启用动画效果this.sdkService.map.naviModeZoomToFullView(isAnimation);
绿框范围:地图中导航相关元素在地图的显示区域;BNEngineEdgeInsets中left, top, right, bottom 单位为px
this.sdkService.map.updateMapShowScreenRect(new BNEngineEdgeInsets(10,10,1250,2050)) //请根据实际UI布局情况来设置,单位px
蓝框范围:在绿框设置了显示区域后,需要设置上层UI组件的大小范围,即蓝框范围,地图中导航相关元素在地图上绘制时会避让蓝框的区域范围,防止遮挡。
this.sdkService.map.updateUIViewBound([new BNEngineEdgeInsets(10,10,100,400)]) //请根据实际情况获取UI组件的范围,单位px
上一篇
下一篇
本篇文章对您是否有帮助?