@Override
public void onManeuver(BNRGManeuver arg0) {
Log.d(BNRemoteConstants.MODULE_TAG, "onManeuver...........name = " + arg0.getManeuverName() + ", distance = " +
arg0.getManeuverDistance() + ",nextRoadName = " + arg0.getNextRoadName());
final String afterMeterS = getFormatAfterMeters(arg0.getManeuverDistance());
final String nextRoadName = arg0.getNextRoadName();
final boolean isAlong = arg0.mIsStraight;
String turnName = arg0.name;
int turnIconResId = SimpleGuideModle.gTurnIconID[0];
if (turnName != null && !"".equalsIgnoreCase(turnName)) {
turnName = turnName + ".png";
}
if (turnName != null && !"".equalsIgnoreCase(turnName)) {
turnIconResId = SimpleGuideModle.getInstance().getTurnIconResId(turnName);
}
final int turnIcon = turnIconResId;
mMainHandler.post(new Runnable() {
@Override
public void run() {
mAfterMetersInfoTV.setText(afterMeterS);
mGoWhereInfoTV.setText(nextRoadName);
mNaviAfterView.setVisibility(View.VISIBLE);
mAlongRoadView.setVisibility(View.GONE);
mTurnIcon.setImageDrawable(getResources().getDrawable(turnIcon));
}
});
}
/**
* 根据剩余距离获取格式化的字符串,如 200米后
* @param nextRemainDist
* @return
*/
private String getFormatAfterMeters(int nextRemainDist) {
StringBuffer distance = new StringBuffer();
StringUtils.formatDistance(nextRemainDist, UnitLangEnum.ZH, distance);
return getResources().getString(R.string.nsdk_string_rg_sg_after_meters, distance);
}
/**
* 定义了机动点转向标的对应关系,如 turnIconName 为 turn_back 时,对应显示图标ID为 R.drawable.nsdk_drawable_rg_ic_turn_back,具体图标请用户自行设计。
*/
public static final int[] gTurnIconID = {
R.drawable.nsdk_drawable_rg_ic_turn_back , /**< 无效值 */
R.drawable.nsdk_drawable_rg_ic_turn_front , /**< 直行 */
R.drawable.nsdk_drawable_rg_ic_turn_right_front , /**< 右前方转弯 */
R.drawable.nsdk_drawable_rg_ic_turn_right , /**< 右转 */
R.drawable.nsdk_drawable_rg_ic_turn_right_back , /**< 右后方转弯 */
R.drawable.nsdk_drawable_rg_ic_turn_back , /**< 掉头 */
R.drawable.nsdk_drawable_rg_ic_turn_left_back , /**< 左后方转弯 */
R.drawable.nsdk_drawable_rg_ic_turn_left , /**< 左转 */
R.drawable.nsdk_drawable_rg_ic_turn_left_front , /**< 左前方转弯 */
R.drawable.nsdk_drawable_rg_ic_turn_ring , /**< 环岛 */
R.drawable.nsdk_drawable_rg_ic_turn_ring_out , /**< 环岛出口 */
R.drawable.nsdk_drawable_rg_ic_turn_left_side , /**< 普通/JCT/SAPA二分歧 靠左 */
R.drawable.nsdk_drawable_rg_ic_turn_right_side , /**< 普通/JCT/SAPA二分歧 靠右 */
R.drawable.nsdk_drawable_rg_ic_turn_left_side_main , /**< 左侧走本线 */
R.drawable.nsdk_drawable_rg_ic_turn_branch_left_straight , /**< 靠最左走本线 */
R.drawable.nsdk_drawable_rg_ic_turn_right_side_main , /**< 右侧走本线 */
R.drawable.nsdk_drawable_rg_ic_turn_branch_right_straight , /**< 靠最右走本线 */
R.drawable.nsdk_drawable_rg_ic_turn_branch_center , /**< 中间走本线 */
R.drawable.nsdk_drawable_rg_ic_turn_left_side_ic , /**< IC二分歧左侧走IC */
R.drawable.nsdk_drawable_rg_ic_turn_right_side_ic , /**< IC二分歧右侧走IC */
R.drawable.nsdk_drawable_rg_ic_turn_branch_left , /**< 普通三分歧/JCT/SAPA 靠最左 */
R.drawable.nsdk_drawable_rg_ic_turn_branch_right , /**< 普通三分歧/JCT/SAPA 靠最右 */
R.drawable.nsdk_drawable_rg_ic_turn_branch_center , /**< 普通三分歧/JCT/SAPA 靠中间 */
R.drawable.nsdk_drawable_rg_ic_turn_start , /**< 起始地 */
R.drawable.nsdk_drawable_rg_ic_turn_dest , /**< 目的地 */
R.drawable.nsdk_drawable_rg_ic_turn_via_1, /**< 途径点1 */
R.drawable.nsdk_drawable_rg_ic_turn_via_1, /**< 途径点2 */
R.drawable.nsdk_drawable_rg_ic_turn_via_1, /**< 途径点3 */
R.drawable.nsdk_drawable_rg_ic_turn_via_1, /**< 途径点4 */
R.drawable.nsdk_drawable_rg_ic_turn_inferry , /**< 进入渡口 */
R.drawable.nsdk_drawable_rg_ic_turn_inferry , /**< 脱出渡口 */
R.drawable.nsdk_drawable_rg_ic_turn_tollgate , /**< 收费站 */
R.drawable.nsdk_drawable_rg_ic_turn_left_side_main , /**< IC二分歧左侧直行走IC */
R.drawable.nsdk_drawable_rg_ic_turn_right_side_main , /**< IC二分歧右侧直行走IC */
R.drawable.nsdk_drawable_rg_ic_turn_left_side_main , /**< 普通/JCT/SAPA二分歧左侧 直行 */
R.drawable.nsdk_drawable_rg_ic_turn_right_side_main , /**< 普通/JCT/SAPA二分歧右侧 直行 */
R.drawable.nsdk_drawable_rg_ic_turn_branch_left_straight , /**< 普通/JCT/SAPA三分歧左侧 直行 */
R.drawable.nsdk_drawable_rg_ic_turn_branch_center , /**< 普通/JCT/SAPA三分歧中央 直行 */
R.drawable.nsdk_drawable_rg_ic_turn_branch_right_straight ,/**< 普通/JCT/SAPA三分歧右侧 直行 */
R.drawable.nsdk_drawable_rg_ic_turn_branch_left , /**< IC三分歧左侧走IC */
R.drawable.nsdk_drawable_rg_ic_turn_branch_center , /**< IC三分歧中央走IC */
R.drawable.nsdk_drawable_rg_ic_turn_branch_right , /**< IC三分歧右侧走IC */
R.drawable.nsdk_drawable_rg_ic_turn_branch_left_straight , /**< IC三分歧左侧直行 */
R.drawable.nsdk_drawable_rg_ic_turn_branch_center , /**< IC三分歧中间直行 */
R.drawable.nsdk_drawable_rg_ic_turn_branch_right_straight, /**< IC三分歧右侧直行 */
R.drawable.nsdk_drawable_rg_ic_turn_left_side_main, /**< 八方向靠左直行*/
R.drawable.nsdk_drawable_rg_ic_turn_right_side_main, /**< 八方向靠右直行*/
R.drawable.nsdk_drawable_rg_ic_turn_branch_left_straight, /**< 八方向靠最左侧直行*/
R.drawable.nsdk_drawable_rg_ic_turn_branch_center, /**< 八方向沿中间直行*/
R.drawable.nsdk_drawable_rg_ic_turn_branch_right_straight, /**< 八方向靠最右侧直行*/
R.drawable.nsdk_drawable_rg_ic_turn_left_2branch_left, /**< 八方向左转+随后靠左*/
R.drawable.nsdk_drawable_rg_ic_turn_left_2branch_right, /**< 八方向左转+随后靠右*/
R.drawable.nsdk_drawable_rg_ic_turn_left_3branch_left, /**< 八方向左转+随后靠最左*/
R.drawable.nsdk_drawable_rg_ic_turn_left_3branch_middle,/**< 八方向左转+随后沿中间*/
R.drawable.nsdk_drawable_rg_ic_turn_left_3branch_right, /**< 八方向左转+随后靠最右*/
R.drawable.nsdk_drawable_rg_ic_turn_right_2branch_left, /**< 八方向右转+随后靠左 */
R.drawable.nsdk_drawable_rg_ic_turn_right_2branch_right, /**< 八方向右转+随后靠右*/
R.drawable.nsdk_drawable_rg_ic_turn_right_3branch_left, /**< 八方向右转+随后靠最左*/
R.drawable.nsdk_drawable_rg_ic_turn_right_3branch_middle, /**< 八方向右转+随后沿中间 */
R.drawable.nsdk_drawable_rg_ic_turn_right_3branch_right, /**< 八方向右转+随后靠最右*/
R.drawable.nsdk_drawable_rg_ic_turn_lf_2branch_left , /**< 八方向左前方靠左侧 */
R.drawable.nsdk_drawable_rg_ic_turn_lf_2branch_right , /**< 八方向左前方靠右侧 */
R.drawable.nsdk_drawable_rg_ic_turn_rf_2branch_left , /**< 八方向右前方靠左侧 */
R.drawable.nsdk_drawable_rg_ic_turn_rf_2branch_right /**< 八方向右前方靠右侧 */
};
/**
* 车道图标,对应每一个车道的转向箭头图标,用户可自行设计对应的显示图标。
*/
public class NaviLane {
/** 左转(高亮) */
public static final int NAVILANE_TURN_LEFT_90 = 0x11000000;
/** 左转 */
public static final int NAVILANE_TURN_LEFT_90_GRAY = 0x10000000;
/** 右转(高亮) */
public static final int NAVILANE_TURN_RIGHT_90 = 0x00110000;
/** 右转 */
public static final int NAVILANE_TURN_RIGHT_90_GRAY = 0x00100000;
/** 直行(高亮) */
public static final int NAVILANE_STRAIGHT = 0x00001100;
/** 直行 */
public static final int NAVILANE_STRAIGHT_GRAY = 0x00001000;
/** 左调头(高亮) */
public static final int NAVILANE_TURN_AROUND_LEFT = 0x00000011;
/** 左调头 */
public static final int NAVILANE_TURN_AROUND_LEFT_GRAY = 0x00000010;
/** 左转+直行 */
public static final int NAVILANE_2CROSS_LEFT_STRAIGHT_GRAY = 0x10001000;
/** 左转(高亮)+直行 */
public static final int NAVILANE_2CROSS_TURN_LEFT = 0x11001000;
/** 左转+直行(高亮) */
public static final int NAVILANE_2CROSS_LEFT_STRAIGHT = 0x10001100;
/** 右转+直行 */
public static final int NAVILANE_2CROSS_RIGHT_STRAIGHT_GRAY = 0x00101000;
/** 右转(高亮)+直行 */
public static final int NAVILANE_2CROSS_TURN_RIGHT = 0x00111000;
/** 右转+直行(高亮) */
public static final int NAVILANE_2CROSS_RIGHT_STRAIGHT = 0x00101100;
/** 左转+直行+右转 */
public static final int NAVILANE_3CROSS_GRAY = 0x10101000;
/** 左转(高亮)+直行+右转 */
public static final int NAVILANE_3CROSS_TURN_LEFT = 0x11101000;
/** 左转+直行+右转(高亮) */
public static final int NAVILANE_3CROSS_TURN_RIGHT = 0x10111000;
/** 左转+直行(高亮)+右转 */
public static final int NAVILANE_3CROSS_STRAIGHT = 0x10101100;
/** 左转+左调头 */
public static final int NAVILANE_AROUND_AND_LEFT_GRAY = 0x10000010;
/** 左转(高亮)+左调头 */
public static final int NAVILANE_LEFT_AND_AROUND = 0x11000010;
/** 左转+左调头(高亮) */
public static final int NAVILANE_AROUND_AND_LEFT = 0x10000011;
/** 左转+右转 */
public static final int NAVILANE_LEFT_AND_RIGHT_GRAY = 0x10100000;
/** 左转(高亮)+右转 */
public static final int NAVILANE_LEFT_AND_RIGHT = 0x11100000;
/** 左转+右转(高亮) */
public static final int NAVILANE_RIGHT_AND_LEFT = 0x10110000;
/** 右转+左调头 */
public static final int NAVILANE_AROUND_AND_RIGHT_GRAY = 0x00100010;
/** 右转(高亮)+左调头 */
public static final int NAVILANE_RIGHT_AND_AROUND = 0x00110010;
/** 右转+左调头(高亮) */
public static final int NAVILANE_AROUND_AND_RIGHT = 0x00100011;
/** 直行+左调头 */
public static final int NAVILANE_AROUND_AND_STRAIGHT_GRAY = 0x00001010;
/** 直行(高亮)+左调头 */
public static final int NAVILANE_STRAIGHT_AND_AROUND = 0x00001110;
/** 直行+左调头(高亮) */
public static final int NAVILANE_AROUND_AND_STRAIGHT = 0x00001011;
/** 左转+右转+左调头 */
public static final int NAVILANE_AROUND_LEFT_RIGHT_GRAY = 0x10100010;
/** 左转(高亮)+右转+左调头 */
public static final int NAVILANE_LEFT_AROUND_RIGHT = 0x11100010;
/** 左转+右转(高亮)+左调头 */
public static final int NAVILANE_RIGHT_AROUND_LEFT = 0x10110010;
/** 左转+右转+左调头(高亮) */
public static final int NAVILANE_AROUND_LEFT_RIGHT = 0x10100011;
/** 左转+直行+左调头 */
public static final int NAVILANE_AROUND_LEFT_STRAIGHT_GRAY = 0x10001010;
/** 左转(高亮)+直行+左调头 */
public static final int NAVILANE_LEFT_AROUND_STRAIGHT = 0x11001010;
/** 左转+直行(高亮)+左调头 */
public static final int NAVILANE_STRAIGHT_LEFT_AROUND = 0x10001110;
/** 左转+直行+左调头(高亮) */
public static final int NAVILANE_AROUND_LEFT_STRAIGHT = 0x10001011;
/** 右转+直行+左调头 */
public static final int NAVILANE_AROUND_RIGHT_STRAIGHT_GRAY = 0x00101010;
/** 右转(高亮)+直行+左调头 */
public static final int NAVILANE_RIGHT_AROUND_STRAIGHT = 0x00111010;
/** 右转+直行(高亮)+左调头 */
public static final int NAVILANE_STRAIGHT_RIGHT_AROUND = 0x00101110;
/** 右转+直行+左调头(高亮) */
public static final int NAVILANE_AROUND_RIGHT_STRAIGHT = 0x00101011;
/** 左转+右转+直行+左调头 */
public static final int NAVILANE_AROUND_LEFT_RIGHT_STRAIGHT_GRAY = 0x10101010;
/** 左转(高亮)+右转+直行+左调头 */
public static final int NAVILANE_LEFT_AROUND_RIGHT_STRAIGHT = 0x11101010;
/** 左转+右转(高亮)+直行+左调头 */
public static final int NAVILANE_RIGHT_AROUND_LEFT_STRAIGHT = 0x10111010;
/** 左转+右转+直行(高亮)+左调头 */
public static final int NAVILANE_STRAIGHT_AROUND_LEFT_RIGHT = 0x10101110;
/** 左转+右转+直行+左调头(高亮) */
public static final int NAVILANE_AROUND_LEFT_RIGHT_STRAIGHT = 0x10101011;
}