{"version":"0.1.0","code":"0000","result":true,"message":"处理成功","errdetail":"","timestamp":1671516371532,"data":{"id":71713073,"title":"6.4.4.2路线绘制","slug":"ggbgad","format":"lake","bookId":26046811,"body":null,"body_draft":null,"body_html":"
客户端在规划路线后会获取到几条路线数据,然后通过BizGuideRouteControl的相关接口把路线绘制出来。客户端需要提供路线数据,起终点、中途点以及其它一些路线绘制配置参数。
路线样式数据正常也是通过getLayerStyle和BizRouteTypePath类型的模式,返回JSON样式数据。但是因为路线样式参数非常多,同时路线展示的类型也很多,这样导致路线的JSON样式数据大概有六千行,在解析JSON数据的性能消耗上会比较多。所以针对路线样式的回调方式上又增加了一个接口com.autonavi.gbl.map.layer.observer.IPrepareLayerStyle.getRouteLayerStyle,默认优先调用该接口获取路线样式(非JSON配置,AutoSDK无需解析JSON),如果客户端没有返回样式数据,会再通过getLayerStyle来获取路线样式。
正如上面所说,路线的样式参数非常之多,而导航过程中路线的样式基本是不变的,所以com.autonavi.gbl.map.layer.observer.IPrepareLayerStyle提供了缓存的能力,继承实现com.autonavi.gbl.map.layer.observer.IPrepareLayerStyle.isRouteCacheStyleEnabled,返回是否启用路线样式缓存。一旦启用缓存,第二次获取样式时就不会再次从客户端获取,直接使用上一次的样式,这样有效提升绘制效率,避免重复的样式获取和解析等。
如果路线样式要发生改变,则调用com.autonavi.gbl.layer.BizGuideRouteControl.clearPathsCacheStyle来清除之前保存的样式,后面再绘制路线会重新向客户端获取新的样式。
路线具有阴影的能力,可以通过json配置来调整
"route_shadow_param": // 路径阴影功能\n{\n\t"shadow_color":0, // 路线阴影颜色,格式:ARGB\n\t"shadow_pass_color":0, // 路线阴影走过颜色,格式:ARGB\n\t"shadow_marker":0, // 路线阴影纹理\n\t"shadow_marker_info":"",\n\t"route_offset_pixels":5 // 路线阴影偏移像素值\n}
路线具有走过置灰的能力,可以通过接口com.autonavi.gbl.layer.BizGuideRouteControl.setPassGreyMode来控制开和关,默认走过不置灰。
走过置灰的颜色配置,见路线样配置参数中的"route_grey_passed_param"。另外如果走过的路段不显示出来,只需要把置灰颜色配置成透明即可。
com.autonavi.gbl.layer.model.BizRouteType
路线绘制包含的图层列表:
分类 | 业务图层 | 枚举类型 | 图元 | 对应图元Item | 是否内聚 | 是否动态纹理 |
导航规划 | 路线起点图层 | BizRouteTypeStartPoint | 点图元 | RoutePathPointItem | 否 | 否 |
路线终点图层 | BizRouteTypeEndPoint | 点图元 | RoutePathPointItem | 否 | 否 | |
路线途径点图层 | BizRouteTypeViaPoint | 点图元 | RoutePathPointItem | 否 | 否 | |
路线末梢点图层 | BizRouteTypeEndPathPoint | 点图元 | PointLayerItem | 否 | 否 | |
对比路线Tip图层 | BizRouteTypeCompareTip | 点图元 | RouteCompareTipsLayerItem | 否 | 是 | |
路线上路径图层 | BizRouteTypePath | 路线图元 | RouteLayerItem | 否 | 否 | |
拥堵事件图层(路线外) | BizRouteTypeJamPoint | 点图元 | RouteJamPointLayerItem | 否 | 否 | |
路线上拥堵线图层 | BizRouteTypeJamLine | 线图元 | RouteJamLineLayerItem | 否 | 否 | |
路线上小电子眼图层 | BizRouteTypeLittleCamera | 点图元 | PointLayerItem | 否 | 否 | |
路线上小红绿灯图层 | BizRouteTypeTrafficLight | 点图元 | PointLayerItem | 否 | 否 | |
路线上封路事件图层 | BizRouteTypeTrafficBlock | 点图元 | RouteBlockLayerItem | 否 | 否 | |
路线外封路事件图层 | BizRouteTypeTrafficBlockOuter | 点图元 | RouteBlockLayerItem | 否 | 否 | |
路线上事件Tip图层 | BizRouteTypeTrafficEventTip | 点图元 | RouteTrafficEventTipsLayerItem | 否 | 否 | |
禁行图层 | BizRouteTypeForbidden | 点图层 | RouteForbiddenLayerItem | 否 | 无 | |
路线上能源耗尽点图层 | BizRouteTypeEnergyEmptyPoint | 点图元 | RoutePathPointItem | 否 | 否 | |
路线上剩余电量点图层 | BizRouteTypeEnergyRemainPoint | 点图元 | RoutePathPointItem | 否 | 否 | |
电量关键点图层 | BizRouteTypeEnergyKeyPoint | 点图元 | PointLayerItem | 否 | 是 |
备注:调用com.autonavi.gbl.layer.BizGuideRouteControl.updatePaths()会触发以上业务图层的绘制。
也就是说,上面图层没有自己独立的业务图层接口,都是通过这个updatePaths接口触发绘制,客户端只需要在com.autonavi.gbl.map.layer.observer.IPrepareLayerStyle对象的回调中提供图层对应的样式和纹理即可。
com.autonavi.gbl.layer.model.RouteDrawStyle
参数 | 类型 | 描述 |
mIsOffLine | boolean | 是否离线 |
mIsNavi | boolean | 是否导航 画导航路径时要设为true |
mRouteMapMode | BizRouteMapMode | 地图模式 主图 或 鹰眼 |
mRouteScene | RouteLayerScene | 路线业务场景 单指线 |
mIsMultipleMode | boolean | 是否是多备选模式 |
备注:在线切离线,或者离线切在线,mIsOffLine需要设置成对应的值,然后调用com.autonavi.gbl.layer.BizGuideRouteControl.setPathDrawStyle重新设置路线绘制样式以及调用com.autonavi.gbl.layer.BizGuideRouteControl.updatePaths重新绘制路线
com.autonavi.gbl.layer.model.BizRouteMapMode
枚举值 | 描述 |
BizRouteMapModeMain | 主图 |
BizRouteMapModeEagleEye | 鹰眼 |
com.autonavi.gbl.map.layer.model.RouteLayerScene
枚举值 | 描述 |
RouteLayerSceneNormal | 普通场景下的路线 |
RouteLayerSceneCharge | 收费场景下的路线 |
RouteLayerSceneLimit | 限行场景下的路线 |
RouteLayerSceneCimmute | 通勤场景下的路线 |
RouteLayerSceneWrong | 报错场景下的路线 |
com.autonavi.gbl.map.layer.model.RouteLayerDrawParam
参数 | 类型 | 描述 |
mIsSelected | boolean | 是否被选中 |
mIsNavi | boolean | 是否导航 |
mRouteScene | RouteLayerScene | 路线显示场景 |
mRouteStyleType | RouteLayerStyleType | 路线展示的类型 |
mIsHighLightRoadName | boolean | 是否高亮路名 |
mIsMultipleMode | boolean | 是否是多备选模式 |
com.autonavi.gbl.map.layer.model.RouteLayerStyleType
枚举值 | 描述 |
Main_Normal | 主图普通模式 路线页面普通的样式 |
Main_HightLight | 主图高亮模式,路线页面选中高亮的样式 |
EaglEye_Normal | 鹰眼地图普通模式 |
EaglEye_HightLight | 鹰眼地图高亮的样式 |
Main_Offline | 主地图离线模式 |
Main_Offline_HightLight | 主地图离线高度模式 |
EaglEye_Offline | 鹰眼地图离线模式 |
EaglEye_Offline_HightLight | 鹰眼地图离线高度模式 |
com.autonavi.gbl.map.layer.model.MapRouteTexture
枚举值 | 值 | 描述 |
MapRouteTextureNonavi | 0 | 非导航道路 |
MapRouteTextureNavi | 1 | 导航道路 |
MapRouteTextureDefault | 2 | 实时交通默认状态 |
//MapRouteTextureOpen | 3 | 实时交通畅通状态 |
MapRouteTextureAmble | 4 | 实时交通缓行状态 |
MapRouteTextureJam | 5 | 实时交通拥堵状态 |
MapRouteTextureCongested | 6 | 实时交通极其拥堵状态 |
MapRouteTextureArrow | 7 | 路线上鱼骨箭头 |
MapRouteTextureRapider | 16 | 实时交通极其畅通状态 |
MapRouteTextureRestrain | 30 | 导航抑制状态 |
MapRouteTextureCharge | 32 | 收费道路 |
MapRouteTextureFree | 33 | 免费道路 |
MapRouteTextureLimit | 34 | 限行道路 |
MapRouteTextureSlower | 35 | 通勤场景下更拥堵道路 |
MapRouteTextureFaster | 36 | 通勤场景下更畅通道路 |
MapRouteTextureWrong | 37 | 报错道路 |
MapRouteTextureFerry | 38 | 轮渡线 |
MapRouteTexturePark | 39 | 停车场路线 |
com.autonavi.gbl.map.layer.model.RouteLayerStyle
见路线图层路线样式参数
//获取路线图层实例\nBaseLayer com.autonavi.gbl.layer.BizGuideRouteControl.getRouteLayer(int type)\n \n//设置走过置灰\nvoid com.autonavi.gbl.layer.BizGuideRouteControl.setPassGreyMode(boolean bPassGrey)\n\n//设置样式风格\nvoid com.autonavi.gbl.layer.BizGuideRouteControl.setPathDrawStyle(RouteDrawStyle drawParam)\n\n//更新引导路线数据\nvoid com.autonavi.gbl.layer.BizGuideRouteControl.setPathInfos(ArrayList<BizPathInfoAttrs>pathInfo, int selectIndex)\n\n//更新路线行程点信息\nvoid com.autonavi.gbl.layer.BizGuideRouteControl.setPathPoints(RoutePoints pathPoints)\n\n//绘制路线以及路线上的元素\nvoid com.autonavi.gbl.layer.BizGuideRouteControl.updatePaths()\n\n//设置选中路线\nvoid com.autonavi.gbl.layer.BizGuideRouteControl.setSelectedPathIndex(int index)\n \n//获取选中路线index\nint com.autonavi.gbl.layer.BizGuideRouteControl.getSelectedPathIndex()\n \n//清除路线以及缓存的路线数据(包括路线,路线上的点,箭头,交通事件tip,拥堵事件,封路事件等)\nvoid com.autonavi.gbl.layer.BizGuideRouteControl.clearPaths()\n\n//路线图元样式回调接口\nboolean com.autonavi.gbl.map.layer.observer.IPrepareLayerStyle.getRouteLayerStyle(BaseLayer pLayer, LayerItem pItem,RouteLayerStyle style )\t\t\n \n//获取导航线绘制类型参数\nRouteLayerDrawParam com.autonavi.gbl.map.layer.RouteLayerItem.getRouteDrawParam()\n\n//返回是否启用路线缓存样式\nboolean com.autonavi.gbl.map.layer.observer.IPrepareLayerStyle.isRouteCacheStyleEnabled()\n\n//返回路线样式是否是夜间模式\ncom.autonavi.gbl.map.layer.observer.IPrepareLayerStyle.isRouteStyleNightMode()\n \n//以下为室内停车场接口 \n//更新停车场引导路线数据,同时设置当前选中路线index,无须再调用SetSelectedPathIndex\nvoid BaseLayer com.autonavi.gbl.layer.BizGuideRouteControl.setParkingPathInfos(ArrayList<BizPathInfoAttrs> pathInfo, int beginIndex)\n\n//添加拼接路径上,各路径的起终点/途经点信息(场内路径和场外路径拼接使用,场外为多备选,需要添加全部路线)\nvoid BaseLayer com.autonavi.gbl.layer.BizGuideRouteControl.AddSplicePathRoutePointsInfo(long pathID, RoutePoints pathPoints)\n\n//设置停车场楼层\nvoid BaseLayer com.autonavi.gbl.layer.BizGuideRouteControl.SetParkFloor(int index, int floor)\n \n//设置当前车辆所处路线\nboolean BaseLayer com.autonavi.gbl.layer.BizGuideRouteControl.SetCurPathId(long pathId)
说明:函数详情,请复制函数名称到在线API搜索
public void drawRoute(ArrayList<PathInfo> pathInfoList, RoutePoints pathPoints,\n boolean offline, boolean isMultiMode) {\n ...\n long pathCount = pathInfoList == null ? 0 : pathInfoList.size();\n ArrayList<BizPathInfoAttrs> paths = new ArrayList<>(); // 准备线数据\n for (int i = 0; i < pathCount; i++) {\n PathInfo pathInfo = paths.get(i);\n if(null != pathInfo && pathInfo.isValid())\n {\n BizPathInfoAttrs bizPath = new BizPathInfoAttrs();\n bizPath.mPathInfo = pathInfo\n bizPath.mDrawAtts = new BizRouteDrawCtrlAttrs();\n \n \tbizPath.mDrawAtts.setMIsDrawPath(true);//是否要绘制\n \tbizPath.mDrawAtts.setMIsDrawPathCamera(false);//是否绘制电子眼\n \tbizPath.mDrawAtts.setMIsDrawPathTrafficLight(false); //是否要绘制路线上的交通灯\n \tbizPath.mDrawAtts.setMIsDrawArrow(true);//是否要绘制转向箭头\n \tbizPath.mDrawAtts.setMIsVisible(true);//是否要显示\n \tbizPath.mDrawAtts.setMIsTrafficEventOpen(true);//是否要打开交通事件显示开关,默认为开\n \tbizPath.mDrawAtts.setMIsHighLightRoadName(true);\n \tpaths.add(bizPath); \n }\n }\n\n // 路线绘制风格\n RouteDrawStyle mainRouteDrawStyle = new RouteDrawStyle();\n mainRouteDrawStyle.mIsNavi = true; // 是否导航 画导航路径时要设为true\n mainRouteDrawStyle.mIsOffLine = offline; // 是否离线\n mainRouteDrawStyle.mRouteMapMode = BizRouteMapMode.BizRouteMapModeMain; // 图模式 主图 或 鹰眼\n mainRouteDrawStyle.mRouteScene = RouteLayerScene.RouteLayerSceneNormal; // 路线业务场景 单指线\n mainRouteDrawStyle.mIsMultipleMode = isMultiMode; // 是否是多备选模式\n bizGuideRouteControl.setPathDrawStyle(mainRouteDrawStyle);// 主图路线风格\n\n // 更新路线行程点信息\n bizGuideRouteControl.setPathPoints(pathPoints);\n\n bizGuideRouteControl.setPathInfos(paths, 0);// 更新引导路线数据\n bizGuideRouteControl.updatePaths(); // 绘制路线以及路线上的元素\n}
public void drawRoute(ArrayList<PathInfo> pathInfoList, ArrayList<PathInfo> indoorParkPathInfoList, \n RoutePoints pathPoints, ArrayList<RoutePoints> splicePathPointsList,\n boolean offline, boolean isMultiMode) {\n ...\n //室外路线\n long pathCount = pathInfoList == null ? 0 : pathInfoList.size();\n ArrayList<BizPathInfoAttrs> paths = new ArrayList<>(); // 准备线数据\n for (int i = 0; i < pathCount; i++) {\n PathInfo pathInfo = paths.get(i);\n if(null != pathInfo && pathInfo.isValid())\n {\n BizPathInfoAttrs bizPath = new BizPathInfoAttrs();\n bizPath.mPathInfo = pathInfo\n bizPath.mDrawAtts = new BizRouteDrawCtrlAttrs();\n \n \tbizPath.mDrawAtts.setMIsDrawPath(true);//是否要绘制\n \tbizPath.mDrawAtts.setMIsDrawPathCamera(false);//是否绘制电子眼\n \tbizPath.mDrawAtts.setMIsDrawPathTrafficLight(false); //是否要绘制路线上的交通灯\n \tbizPath.mDrawAtts.setMIsDrawArrow(true);//是否要绘制转向箭头\n \tbizPath.mDrawAtts.setMIsVisible(true);//是否要显示\n \tbizPath.mDrawAtts.setMIsTrafficEventOpen(true);//是否要打开交通事件显示开关,默认为开\n \tbizPath.mDrawAtts.setMIsHighLightRoadName(true);\n \tpaths.add(bizPath); \n }\n }\n //室内停车场路线\n long indoorParkPathCount = indoorParkPathInfoList == null ? 0 : indoorParkPathInfoList.size();\n ArrayList<BizPathInfoAttrs> indoorParkPaths = new ArrayList<>(); // 准备线数据\n for (int i = 0; i < indoorParkPathCount; i++) {\n PathInfo indoorParkPathInfo = indoorParkPaths.get(i);\n if(null != indoorParkPathInfo && indoorParkPathInfo.isValid())\n {\n BizPathInfoAttrs bizPath = new BizPathInfoAttrs();\n bizPath.mPathInfo = indoorParkPathInfo\n bizPath.mDrawAtts = new BizRouteDrawCtrlAttrs();\n //室内停车场路线不存在电子眼、交通灯\n \tbizPath.mDrawAtts.setMIsDrawPath(true);//是否要绘制\n \tbizPath.mDrawAtts.setMIsDrawPathCamera(false);//是否绘制电子眼\n \tbizPath.mDrawAtts.setMIsDrawPathTrafficLight(false); //是否要绘制路线上的交通灯\n \tbizPath.mDrawAtts.setMIsDrawArrow(true);//是否要绘制转向箭头\n \tbizPath.mDrawAtts.setMIsVisible(true);//是否要显示\n \tbizPath.mDrawAtts.setMIsTrafficEventOpen(false);//是否要打开交通事件显示开关,默认为开\n \tbizPath.mDrawAtts.setMIsHighLightRoadName(false);\n \tindoorParkPaths.add(bizPath); \n }\n }\n // 路线绘制风格\n RouteDrawStyle mainRouteDrawStyle = new RouteDrawStyle();\n mainRouteDrawStyle.mIsNavi = true; // 是否导航 画导航路径时要设为true\n mainRouteDrawStyle.mIsOffLine = offline; // 是否离线\n mainRouteDrawStyle.mRouteMapMode = BizRouteMapMode.BizRouteMapModeMain; // 图模式 主图 或 鹰眼\n mainRouteDrawStyle.mRouteScene = RouteLayerScene.RouteLayerSceneNormal; // 路线业务场景 单指线\n mainRouteDrawStyle.mIsMultipleMode = isMultiMode; // 是否是多备选模式\n bizGuideRouteControl.setPathDrawStyle(mainRouteDrawStyle);// 主图路线风格\n\n // 更新路线行程点信息\n bizGuideRouteControl.setPathPoints(pathPoints);\n bizGuideRouteControl.setPathInfos(paths, 0);// 更新引导路线数据\n \n //更新停车场路线信息\n //室外路线,室内路线全部都是分开算路,所以需要把每一段路的起始、终点信息添加进去。\n long splicePathCount = splicePathPointsList == null ? 0 : splicePathPointsList.size();\n for (int i = 0; i < splicePathCount; i++) {\n bizGuideRouteControl.AddSplicePathRoutePointsInfo(splicePathPointsList[i].mStartPoints[0].mPathId, splicePathPointsList[i]);\n }\n // 更新室内停车场路线数据,多个停车场下,index为车辆所处停车场路线下标,只有一个停车场则为0\n bizGuideRouteControl.setParkingPathInfos(pathPoints, 0);\n // 设置室内停车场车辆所处楼层,以下例子为:第一个停车场-1层\n bizGuideRouteControl.SetParkFloor(0, -1);\n bizGuideRouteControl.updatePaths(); // 绘制路线以及路线上的元素\n //室内到室外多条路线,当前段导航完,需要切换路线bizGuideRouteControl.SetCurPathId(long pathId)\n}
/**\n * @brief 图元样式JSON串回调接口\n * @param[in] pLayer 图元所在图层\n * @param[in] layerItem 需要更新样式的具体图元,通过GetBusinessType返回值判断具体图层\n * @param[in] forJava 参数暂时无用,只是标示当前接口用于支持Java端,传递Stirng而非cJSON*\n * @return String 返回的样式JSON内容字符串,由客户端构造\n * @note thread:main\n */\n @Override\n public String getLayerStyle(final BaseLayer pLayer, LayerItem layerItem, boolean forJava) {\n String strStyleJson = "EMPTY";\n if (pLayer == null || layerItem == null) {\n return strStyleJson;\n }\n \n int itemType = layerItem.getItemType();\n int businessType = layerItem.getBusinessType();\n\n switch (itemType) {\n case LayerItemType.LayerItemPathType:\n switch (businessType) {\n case BizRouteType.BizRouteTypePath:\n //strStyleJson = CommonUtil.getStyleBeanJson("route_online_highlight");\n break;\n case BizRouteType.BizRouteTypeEaglePath:\n //strStyleJson = CommonUtil.getStyleBeanJson("route_online_highlight_eagle");\n break;\n }\n break;\n }\n }
public class PrepareLayerStyleImpl implements IPrepareLayerStyle {\n ...\n private double mScaleFactor = 1.0;\n /**\n * <\n *\n * @return bool true:成功 false:失败\n * @brief 路线图元样式回调接口\n * @param[in] pLayer 图元所在图层\n * @param[in] pItem 需要更新样式的具体图元,通过GetBusinessType返回值判断具体图层\n * @param[in] style 返回的样式数据结果\n * @note thread:main\n */\n @Override\n public boolean getRouteLayerStyle(BaseLayer baseLayer, LayerItem layerItem, RouteLayerStyle routeLayerStyle) {\n int itemType = layerItem.getItemType();\n int businessType = layerItem.getBusinessType();\n\n RouteLayerItem routeLayerItem = (RouteLayerItem)layerItem;\n RouteLayerDrawParam routeDrawParam = routeLayerItem.getRouteDrawParam();\n switch (routeDrawParam.mRouteStyleType) {\n case RouteLayerStyleType.Main_Normal:\n {}\n break;\n case RouteLayerStyleType.Main_Offline:\n {}\n break;\n case RouteLayerStyleType.Main_HightLight:\n {\n if (mIsNightMode)\n {\n {\n RouteLayerParam layerParam;\n layerParam.useColor = 1;\n layerParam.useCap = 0;\n layerParam.canBeCovered = 0;\n layerParam.showArrow = 0;\n layerParam.needColorGradient = 0;\n layerParam.lineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.borderLineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.fillMarker = _getMarkerIdByName.call("map_lr_dott_car_light");\n layerParam.simple3DFillMarker = -1;\n layerParam.borderMarker = _getMarkerIdByName.call("map_lr_dott_car_light");\n layerParam.fillColor = 0xff3B70DC;\n layerParam.borderColor = 0xff325FBC;\n layerParam.routeTexture = (MapRouteTexture)0;\n layerParam.lineTextureInfo.x1 = 0;\n layerParam.lineTextureInfo.y1 = 1;\n layerParam.lineTextureInfo.x2 = 1;\n layerParam.lineTextureInfo.y2 = 0;\n layerParam.lineTextureInfo.textureLen = _scaleFactor * 32;\n routeLayerStyle.vecParam.push_back(layerParam);\n }\n {\n RouteLayerParam layerParam;\n layerParam.useColor = 1;\n layerParam.useCap = 1;\n layerParam.canBeCovered = 0;\n layerParam.showArrow = 1;\n layerParam.needColorGradient = 0;\n layerParam.lineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.borderLineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.fillMarker = _getMarkerIdByName.call("map_lr_road_white_front_select");\n layerParam.simple3DFillMarker = -1;\n layerParam.borderMarker = _getMarkerIdByName.call("map_lr_road_white_back_select");\n layerParam.fillColor = 0xff3B70DC;\n layerParam.borderColor = 0xff325FBC;\n layerParam.routeTexture = (MapRouteTexture)1;\n layerParam.lineTextureInfo.x1 = 0;\n layerParam.lineTextureInfo.y1 = 0.5;\n layerParam.lineTextureInfo.x2 = 1;\n layerParam.lineTextureInfo.y2 = 0.5;\n layerParam.lineTextureInfo.textureLen = _scaleFactor * 32;\n routeLayerStyle.vecParam.push_back(layerParam);\n }\n {\n RouteLayerParam layerParam;\n layerParam.useColor = 1;\n layerParam.useCap = 1;\n layerParam.canBeCovered = 0;\n layerParam.showArrow = 1;\n layerParam.needColorGradient = 0;\n layerParam.lineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.borderLineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.fillMarker = _getMarkerIdByName.call("map_lr_road_white_front_select");\n layerParam.simple3DFillMarker = -1;\n layerParam.borderMarker = _getMarkerIdByName.call("map_lr_road_white_back_select");\n layerParam.fillColor = 0xff3B70DC;\n layerParam.borderColor = 0xff325FBC;\n layerParam.routeTexture = (MapRouteTexture)2;\n layerParam.lineTextureInfo.x1 = 0;\n layerParam.lineTextureInfo.y1 = 0.5;\n layerParam.lineTextureInfo.x2 = 1;\n layerParam.lineTextureInfo.y2 = 0.5;\n layerParam.lineTextureInfo.textureLen = _scaleFactor * 32;\n layerParam.lineCapTextureInfo.x1 = 0;\n layerParam.lineCapTextureInfo.y1 = 0.5;\n layerParam.lineCapTextureInfo.x2 = 1;\n layerParam.lineCapTextureInfo.y2 = 0;\n routeLayerStyle.vecParam.push_back(layerParam);\n }\n {\n RouteLayerParam layerParam;\n layerParam.useColor = 1;\n layerParam.useCap = 1;\n layerParam.canBeCovered = 0;\n layerParam.showArrow = 1;\n layerParam.needColorGradient = 0;\n layerParam.lineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.borderLineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.fillMarker = _getMarkerIdByName.call("map_lr_road_white_front_select");\n layerParam.simple3DFillMarker = -1;\n layerParam.borderMarker = _getMarkerIdByName.call("map_lr_road_white_back_select");\n layerParam.fillColor = 0xff11A666;\n layerParam.borderColor = 0xff0B8852;\n layerParam.routeTexture = (MapRouteTexture)3;\n layerParam.lineTextureInfo.x1 = 0;\n layerParam.lineTextureInfo.y1 = 0.5;\n layerParam.lineTextureInfo.x2 = 1;\n layerParam.lineTextureInfo.y2 = 0.5;\n layerParam.lineTextureInfo.textureLen = _scaleFactor * 32;\n layerParam.lineCapTextureInfo.x1 = 0;\n layerParam.lineCapTextureInfo.y1 = 0.5;\n layerParam.lineCapTextureInfo.x2 = 1;\n layerParam.lineCapTextureInfo.y2 = 0;\n routeLayerStyle.vecParam.push_back(layerParam);\n }\n {\n RouteLayerParam layerParam;\n layerParam.useColor = 1;\n layerParam.useCap = 1;\n layerParam.canBeCovered = 0;\n layerParam.showArrow = 1;\n layerParam.needColorGradient = 0;\n layerParam.lineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.borderLineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.fillMarker = _getMarkerIdByName.call("map_lr_road_white_front_select");\n layerParam.simple3DFillMarker = -1;\n layerParam.borderMarker = _getMarkerIdByName.call("map_lr_road_white_back_select");\n layerParam.fillColor = 0xffF5C208;\n layerParam.borderColor = 0xffC79C01;\n layerParam.routeTexture = (MapRouteTexture)4;\n layerParam.lineTextureInfo.x1 = 0;\n layerParam.lineTextureInfo.y1 = 0.5;\n layerParam.lineTextureInfo.x2 = 1;\n layerParam.lineTextureInfo.y2 = 0.5;\n layerParam.lineTextureInfo.textureLen = _scaleFactor * 32;\n layerParam.lineCapTextureInfo.x1 = 0;\n layerParam.lineCapTextureInfo.y1 = 0.5;\n layerParam.lineCapTextureInfo.x2 = 1;\n layerParam.lineCapTextureInfo.y2 = 0;\n routeLayerStyle.vecParam.push_back(layerParam);\n }\n {\n RouteLayerParam layerParam;\n layerParam.useColor = 1;\n layerParam.useCap = 1;\n layerParam.canBeCovered = 0;\n layerParam.showArrow = 1;\n layerParam.needColorGradient = 0;\n layerParam.lineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.borderLineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.fillMarker = _getMarkerIdByName.call("map_lr_road_white_front_select");\n layerParam.simple3DFillMarker = -1;\n layerParam.borderMarker = _getMarkerIdByName.call("map_lr_road_white_back_select");\n layerParam.fillColor = 0xffE5254E;\n layerParam.borderColor = 0xffB10A2E;\n layerParam.routeTexture = (MapRouteTexture)5;\n layerParam.lineTextureInfo.x1 = 0;\n layerParam.lineTextureInfo.y1 = 0.5;\n layerParam.lineTextureInfo.x2 = 1;\n layerParam.lineTextureInfo.y2 = 0.5;\n layerParam.lineTextureInfo.textureLen = _scaleFactor * 32;\n layerParam.lineCapTextureInfo.x1 = 0;\n layerParam.lineCapTextureInfo.y1 = 0.5;\n layerParam.lineCapTextureInfo.x2 = 1;\n layerParam.lineCapTextureInfo.y2 = 0;\n routeLayerStyle.vecParam.push_back(layerParam);\n }\n {\n RouteLayerParam layerParam;\n layerParam.useColor = 1;\n layerParam.useCap = 1;\n layerParam.canBeCovered = 0;\n layerParam.showArrow = 1;\n layerParam.needColorGradient = 0;\n layerParam.lineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.borderLineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.fillMarker = _getMarkerIdByName.call("map_lr_road_white_front_select");\n layerParam.simple3DFillMarker = -1;\n layerParam.borderMarker = _getMarkerIdByName.call("map_lr_road_white_back_select");\n layerParam.fillColor = 0xff9B0828;\n layerParam.borderColor = 0xff73031C;\n layerParam.routeTexture = (MapRouteTexture)6;\n layerParam.lineTextureInfo.x1 = 0;\n layerParam.lineTextureInfo.y1 = 0.5;\n layerParam.lineTextureInfo.x2 = 1;\n layerParam.lineTextureInfo.y2 = 0.5;\n layerParam.lineTextureInfo.textureLen = _scaleFactor * 32;\n layerParam.lineCapTextureInfo.x1 = 0;\n layerParam.lineCapTextureInfo.y1 = 0.5;\n layerParam.lineCapTextureInfo.x2 = 1;\n layerParam.lineCapTextureInfo.y2 = 0;\n routeLayerStyle.vecParam.push_back(layerParam);\n }\n {\n RouteLayerParam layerParam;\n layerParam.useColor = 0;\n layerParam.useCap = 0;\n layerParam.canBeCovered = 0;\n layerParam.showArrow = 0;\n layerParam.needColorGradient = 0;\n layerParam.lineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.borderLineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.fillMarker = _getMarkerIdByName.call("global_image_map_aolr");\n layerParam.simple3DFillMarker = -1;\n layerParam.borderMarker = _getMarkerIdByName.call("global_image_map_aolr");\n layerParam.fillColor = 0xffffffff;\n layerParam.borderColor = 0xffffffff;\n layerParam.routeTexture = (MapRouteTexture)7;\n layerParam.lineTextureInfo.x1 = 0;\n layerParam.lineTextureInfo.y1 = 1;\n layerParam.lineTextureInfo.x2 = 1;\n layerParam.lineTextureInfo.y2 = 0;\n layerParam.lineTextureInfo.textureLen = _scaleFactor * 80;\n layerParam.lineCapTextureInfo.x1 = 0.5;\n layerParam.lineCapTextureInfo.y1 = 0.25;\n layerParam.lineCapTextureInfo.x2 = 1;\n layerParam.lineCapTextureInfo.y2 = 0.6;\n routeLayerStyle.vecParam.push_back(layerParam);\n }\n {\n RouteLayerParam layerParam;\n layerParam.useColor = 1;\n layerParam.useCap = 1;\n layerParam.canBeCovered = 0;\n layerParam.showArrow = 1;\n layerParam.needColorGradient = 0;\n layerParam.lineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.borderLineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.fillMarker = _getMarkerIdByName.call("map_lr_road_white_front_select");\n layerParam.simple3DFillMarker = -1;\n layerParam.borderMarker = _getMarkerIdByName.call("map_lr_road_white_back_select");\n layerParam.fillColor = 0xff007A7C;\n layerParam.borderColor = 0xff006567;\n layerParam.routeTexture = (MapRouteTexture)16;\n layerParam.lineTextureInfo.x1 = 0;\n layerParam.lineTextureInfo.y1 = 0.5;\n layerParam.lineTextureInfo.x2 = 1;\n layerParam.lineTextureInfo.y2 = 0.5;\n layerParam.lineTextureInfo.textureLen = _scaleFactor * 32;\n layerParam.lineCapTextureInfo.x1 = 0;\n layerParam.lineCapTextureInfo.y1 = 0.5;\n layerParam.lineCapTextureInfo.x2 = 1;\n layerParam.lineCapTextureInfo.y2 = 0;\n routeLayerStyle.vecParam.push_back(layerParam);\n }\n {\n RouteLayerParam layerParam;\n layerParam.useColor = 1;\n layerParam.useCap = 1;\n layerParam.canBeCovered = 0;\n layerParam.showArrow = 1;\n layerParam.needColorGradient = 0;\n layerParam.lineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.borderLineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.fillMarker = _getMarkerIdByName.call("map_lr_feeroad");\n layerParam.simple3DFillMarker = -1;\n layerParam.borderMarker = _getMarkerIdByName.call("map_lr_feeroad");\n layerParam.fillColor = 0xfff38c1e;\n layerParam.borderColor = -1;\n layerParam.routeTexture = (MapRouteTexture)32;\n layerParam.lineTextureInfo.x1 = 0;\n layerParam.lineTextureInfo.y1 = 0.5;\n layerParam.lineTextureInfo.x2 = 1;\n layerParam.lineTextureInfo.y2 = 0.5;\n layerParam.lineTextureInfo.textureLen = _scaleFactor * 32;\n layerParam.lineCapTextureInfo.x1 = 0;\n layerParam.lineCapTextureInfo.y1 = 0.5;\n layerParam.lineCapTextureInfo.x2 = 1;\n layerParam.lineCapTextureInfo.y2 = 0.75;\n routeLayerStyle.vecParam.push_back(layerParam);\n }\n {\n RouteLayerParam layerParam;\n layerParam.useColor = 1;\n layerParam.useCap = 1;\n layerParam.canBeCovered = 0;\n layerParam.showArrow = 1;\n layerParam.needColorGradient = 0;\n layerParam.lineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.borderLineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.fillMarker = _getMarkerIdByName.call("map_lr_nofeeroad");\n layerParam.simple3DFillMarker = -1;\n layerParam.borderMarker = _getMarkerIdByName.call("map_lr_nofeeroad");\n layerParam.fillColor = 0xfff38c1e;\n layerParam.routeTexture = (MapRouteTexture)33;\n layerParam.lineTextureInfo.x1 = 0;\n layerParam.lineTextureInfo.y1 = 0.5;\n layerParam.lineTextureInfo.x2 = 1;\n layerParam.lineTextureInfo.y2 = 0.5;\n layerParam.lineTextureInfo.textureLen = _scaleFactor * 32;\n layerParam.lineCapTextureInfo.x1 = 0;\n layerParam.lineCapTextureInfo.y1 = 0.5;\n layerParam.lineCapTextureInfo.x2 = 1;\n layerParam.lineCapTextureInfo.y2 = 0.75;\n routeLayerStyle.vecParam.push_back(layerParam);\n }\n {\n RouteLayerParam layerParam;\n layerParam.useColor = 0;\n layerParam.useCap = 1;\n layerParam.canBeCovered = 0;\n layerParam.showArrow = 0;\n layerParam.needColorGradient = 0;\n layerParam.lineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.borderLineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.fillMarker = _getMarkerIdByName.call("map_traffic_platenum_restrict_hl");\n layerParam.simple3DFillMarker = -1;\n layerParam.borderMarker = -1;\n layerParam.fillColor = 0xfffbeeb9;\n layerParam.borderColor = -1;\n layerParam.routeTexture = (MapRouteTexture)34;\n layerParam.lineTextureInfo.x1 = 0;\n layerParam.lineTextureInfo.y1 = 1;\n layerParam.lineTextureInfo.x2 = 0.5;\n layerParam.lineTextureInfo.y2 = 0;\n layerParam.lineTextureInfo.textureLen = _scaleFactor * 32;\n layerParam.lineCapTextureInfo.x1 = 0.5;\n layerParam.lineCapTextureInfo.y1 = 0.25;\n layerParam.lineCapTextureInfo.x2 = 1;\n layerParam.lineCapTextureInfo.y2 = 0.6;\n routeLayerStyle.vecParam.push_back(layerParam);\n }\n {\n RouteLayerParam layerParam;\n layerParam.useColor = 1;\n layerParam.useCap = 0;\n layerParam.canBeCovered = 0;\n layerParam.showArrow = 0;\n layerParam.needColorGradient = 0;\n layerParam.lineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.borderLineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.fillMarker = _getMarkerIdByName.call("global_image_map_ferry");\n layerParam.simple3DFillMarker = -1;\n layerParam.borderMarker = -1;\n layerParam.fillColor = 0xff0096ff;\n layerParam.borderColor = 0xff0096ff;\n layerParam.routeTexture = (MapRouteTexture)38;\n layerParam.lineTextureInfo.x1 = 0;\n layerParam.lineTextureInfo.y1 = 1;\n layerParam.lineTextureInfo.x2 = 1;\n layerParam.lineTextureInfo.y2 = 0;\n layerParam.lineTextureInfo.textureLen = _scaleFactor * 16;\n routeLayerStyle.vecParam.push_back(layerParam);\n }\n {\n RouteLayerParam layerParam;\n layerParam.useColor = 1;\n layerParam.useCap = 1;\n layerParam.canBeCovered = 0;\n layerParam.showArrow = 1;\n layerParam.needColorGradient = 0;\n layerParam.lineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.borderLineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.fillMarker = _getMarkerIdByName.call("map_lr_road_white_front_select");\n layerParam.simple3DFillMarker = -1;\n layerParam.borderMarker = _getMarkerIdByName.call("map_lr_road_white_back_select");\n layerParam.fillColor = 0xff3B70DC;\n layerParam.borderColor = 0xff325FBC;\n layerParam.routeTexture = (MapRouteTexture)39;\n layerParam.lineTextureInfo.x1 = 0;\n layerParam.lineTextureInfo.y1 = 0.5;\n layerParam.lineTextureInfo.x2 = 1;\n layerParam.lineTextureInfo.y2 = 0.5;\n layerParam.lineTextureInfo.textureLen = _scaleFactor * 32;\n layerParam.lineCapTextureInfo.x1 = 0;\n layerParam.lineCapTextureInfo.y1 = 0.5;\n layerParam.lineCapTextureInfo.x2 = 1;\n layerParam.lineCapTextureInfo.y2 = 0;\n routeLayerStyle.vecParam.push_back(layerParam);\n }\n routeLayerStyle.arrow3DTextureId = -1;\n routeLayerStyle.highLightParam.fillColorHightLight = 0;\n routeLayerStyle.mPassedColor[0] = 0xff5e5f61;\n routeLayerStyle.mPassedColor[1] = 0xff484848;\n routeLayerStyle.mPassedColor[2] = 0xffffffff;\n }\n else\n {\n {\n RouteLayerParam layerParam;\n layerParam.useColor = 1;\n layerParam.useCap = 0;\n layerParam.canBeCovered = 0;\n layerParam.showArrow = 0;\n layerParam.needColorGradient = 0;\n layerParam.lineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.borderLineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.fillMarker = _getMarkerIdByName.call("map_lr_dott_car_light");\n layerParam.simple3DFillMarker = -1;\n layerParam.borderMarker = _getMarkerIdByName.call("map_lr_dott_car_light");\n layerParam.fillColor = 0xff4784FF;\n layerParam.borderColor = 0xff325CB3;\n layerParam.routeTexture = (MapRouteTexture)0;\n layerParam.lineTextureInfo.x1 = 0;\n layerParam.lineTextureInfo.y1 = 1;\n layerParam.lineTextureInfo.x2 = 1;\n layerParam.lineTextureInfo.y2 = 0;\n layerParam.lineTextureInfo.textureLen = _scaleFactor * 32;\n routeLayerStyle.vecParam.push_back(layerParam);\n }\n {\n RouteLayerParam layerParam;\n layerParam.useColor = 1;\n layerParam.useCap = 1;\n layerParam.canBeCovered = 0;\n layerParam.showArrow = 1;\n layerParam.needColorGradient = 0;\n layerParam.lineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.borderLineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.fillMarker = _getMarkerIdByName.call("map_lr_road_white_front_select");\n layerParam.simple3DFillMarker = -1;\n layerParam.borderMarker = _getMarkerIdByName.call("map_lr_road_white_back_select");\n layerParam.fillColor = 0xff4784FF;\n layerParam.borderColor = 0xff325CB3;\n layerParam.routeTexture = (MapRouteTexture)1;\n layerParam.lineTextureInfo.x1 = 0;\n layerParam.lineTextureInfo.y1 = 0.5;\n layerParam.lineTextureInfo.x2 = 1;\n layerParam.lineTextureInfo.y2 = 0.5;\n layerParam.lineTextureInfo.textureLen = _scaleFactor * 32;\n routeLayerStyle.vecParam.push_back(layerParam);\n }\n {\n RouteLayerParam layerParam;\n layerParam.useColor = 1;\n layerParam.useCap = 1;\n layerParam.canBeCovered = 0;\n layerParam.showArrow = 1;\n layerParam.needColorGradient = 0;\n layerParam.lineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.borderLineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.fillMarker = _getMarkerIdByName.call("map_lr_road_white_front_select");\n layerParam.simple3DFillMarker = -1;\n layerParam.borderMarker = _getMarkerIdByName.call("map_lr_road_white_back_select");\n layerParam.fillColor = 0xff4784FF;\n layerParam.borderColor = 0xff325CB3;\n layerParam.routeTexture = (MapRouteTexture)2;\n layerParam.lineTextureInfo.x1 = 0;\n layerParam.lineTextureInfo.y1 = 0.5;\n layerParam.lineTextureInfo.x2 = 1;\n layerParam.lineTextureInfo.y2 = 0.5;\n layerParam.lineTextureInfo.textureLen = _scaleFactor * 32;\n layerParam.lineCapTextureInfo.x1 = 0;\n layerParam.lineCapTextureInfo.y1 = 0.5;\n layerParam.lineCapTextureInfo.x2 = 1;\n layerParam.lineCapTextureInfo.y2 = 0;\n routeLayerStyle.vecParam.push_back(layerParam);\n }\n {\n RouteLayerParam layerParam;\n layerParam.useColor = 1;\n layerParam.useCap = 1;\n layerParam.canBeCovered = 0;\n layerParam.showArrow = 1;\n layerParam.needColorGradient = 0;\n layerParam.lineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.borderLineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.fillMarker = _getMarkerIdByName.call("map_lr_road_white_front_select");\n layerParam.simple3DFillMarker = -1;\n layerParam.borderMarker = _getMarkerIdByName.call("map_lr_road_white_back_select");\n layerParam.fillColor = 0xff00BA6A;\n layerParam.borderColor = 0xff006E4A;\n layerParam.routeTexture = (MapRouteTexture)3;\n layerParam.lineTextureInfo.x1 = 0;\n layerParam.lineTextureInfo.y1 = 0.5;\n layerParam.lineTextureInfo.x2 = 1;\n layerParam.lineTextureInfo.y2 = 0.5;\n layerParam.lineTextureInfo.textureLen = _scaleFactor * 32;\n layerParam.lineCapTextureInfo.x1 = 0;\n layerParam.lineCapTextureInfo.y1 = 0.5;\n layerParam.lineCapTextureInfo.x2 = 1;\n layerParam.lineCapTextureInfo.y2 = 0;\n routeLayerStyle.vecParam.push_back(layerParam);\n }\n {\n RouteLayerParam layerParam;\n layerParam.useColor = 1;\n layerParam.useCap = 1;\n layerParam.canBeCovered = 0;\n layerParam.showArrow = 1;\n layerParam.needColorGradient = 0;\n layerParam.lineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.borderLineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.fillMarker = _getMarkerIdByName.call("map_lr_road_white_front_select");\n layerParam.simple3DFillMarker = -1;\n layerParam.borderMarker = _getMarkerIdByName.call("map_lr_road_white_back_select");\n layerParam.fillColor = 0xffFBC500;\n layerParam.borderColor = 0xffB28D02;\n layerParam.routeTexture = (MapRouteTexture)4;\n layerParam.lineTextureInfo.x1 = 0;\n layerParam.lineTextureInfo.y1 = 0.5;\n layerParam.lineTextureInfo.x2 = 1;\n layerParam.lineTextureInfo.y2 = 0.5;\n layerParam.lineTextureInfo.textureLen = _scaleFactor * 32;\n layerParam.lineCapTextureInfo.x1 = 0;\n layerParam.lineCapTextureInfo.y1 = 0.5;\n layerParam.lineCapTextureInfo.x2 = 1;\n layerParam.lineCapTextureInfo.y2 = 0;\n routeLayerStyle.vecParam.push_back(layerParam);\n }\n {\n RouteLayerParam layerParam;\n layerParam.useColor = 1;\n layerParam.useCap = 1;\n layerParam.canBeCovered = 0;\n layerParam.showArrow = 1;\n layerParam.needColorGradient = 0;\n layerParam.lineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.borderLineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.fillMarker = _getMarkerIdByName.call("map_lr_road_white_front_select");\n layerParam.simple3DFillMarker = -1;\n layerParam.borderMarker = _getMarkerIdByName.call("map_lr_road_white_back_select");\n layerParam.fillColor = 0xffEC003E;\n layerParam.borderColor = 0xff990D2B;\n layerParam.routeTexture = (MapRouteTexture)5;\n layerParam.lineTextureInfo.x1 = 0;\n layerParam.lineTextureInfo.y1 = 0.5;\n layerParam.lineTextureInfo.x2 = 1;\n layerParam.lineTextureInfo.y2 = 0.5;\n layerParam.lineTextureInfo.textureLen = _scaleFactor * 32;\n layerParam.lineCapTextureInfo.x1 = 0;\n layerParam.lineCapTextureInfo.y1 = 0.5;\n layerParam.lineCapTextureInfo.x2 = 1;\n layerParam.lineCapTextureInfo.y2 = 0;\n routeLayerStyle.vecParam.push_back(layerParam);\n }\n {\n RouteLayerParam layerParam;\n layerParam.useColor = 1;\n layerParam.useCap = 1;\n layerParam.canBeCovered = 0;\n layerParam.showArrow = 1;\n layerParam.needColorGradient = 0;\n layerParam.lineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.borderLineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.fillMarker = _getMarkerIdByName.call("map_lr_road_white_front_select");\n layerParam.simple3DFillMarker = -1;\n layerParam.borderMarker = _getMarkerIdByName.call("map_lr_road_white_back_select");\n layerParam.fillColor = 0xffA8090B;\n layerParam.borderColor = 0xff7C090B;\n layerParam.routeTexture = (MapRouteTexture)6;\n layerParam.lineTextureInfo.x1 = 0;\n layerParam.lineTextureInfo.y1 = 0.5;\n layerParam.lineTextureInfo.x2 = 1;\n layerParam.lineTextureInfo.y2 = 0.5;\n layerParam.lineTextureInfo.textureLen = _scaleFactor * 32;\n layerParam.lineCapTextureInfo.x1 = 0;\n layerParam.lineCapTextureInfo.y1 = 0.5;\n layerParam.lineCapTextureInfo.x2 = 1;\n layerParam.lineCapTextureInfo.y2 = 0;\n routeLayerStyle.vecParam.push_back(layerParam);\n }\n {\n RouteLayerParam layerParam;\n layerParam.useColor = 0;\n layerParam.useCap = 0;\n layerParam.canBeCovered = 0;\n layerParam.showArrow = 0;\n layerParam.needColorGradient = 0;\n layerParam.lineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.borderLineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.fillMarker = _getMarkerIdByName.call("global_image_map_aolr");\n layerParam.simple3DFillMarker = -1;\n layerParam.borderMarker = _getMarkerIdByName.call("global_image_map_aolr");\n layerParam.fillColor = 0xffffffff;\n layerParam.borderColor = 0xffffffff;\n layerParam.routeTexture = (MapRouteTexture)7;\n layerParam.lineTextureInfo.x1 = 0;\n layerParam.lineTextureInfo.y1 = 1;\n layerParam.lineTextureInfo.x2 = 1;\n layerParam.lineTextureInfo.y2 = 0;\n layerParam.lineTextureInfo.textureLen = _scaleFactor * 80;\n layerParam.lineCapTextureInfo.x1 = 0.5;\n layerParam.lineCapTextureInfo.y1 = 0.25;\n layerParam.lineCapTextureInfo.x2 = 1;\n layerParam.lineCapTextureInfo.y2 = 0.6;\n routeLayerStyle.vecParam.push_back(layerParam);\n }\n {\n RouteLayerParam layerParam;\n layerParam.useColor = 1;\n layerParam.useCap = 1;\n layerParam.canBeCovered = 0;\n layerParam.showArrow = 1;\n layerParam.needColorGradient = 0;\n layerParam.lineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.borderLineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.fillMarker = _getMarkerIdByName.call("map_lr_road_white_front_select");\n layerParam.simple3DFillMarker = -1;\n layerParam.borderMarker = _getMarkerIdByName.call("map_lr_road_white_back_select");\n layerParam.fillColor = 0xff007D5D;\n layerParam.borderColor = 0xff00654B;\n layerParam.routeTexture = (MapRouteTexture)16;\n layerParam.lineTextureInfo.x1 = 0;\n layerParam.lineTextureInfo.y1 = 0.5;\n layerParam.lineTextureInfo.x2 = 1;\n layerParam.lineTextureInfo.y2 = 0.5;\n layerParam.lineTextureInfo.textureLen = _scaleFactor * 32;\n layerParam.lineCapTextureInfo.x1 = 0;\n layerParam.lineCapTextureInfo.y1 = 0.5;\n layerParam.lineCapTextureInfo.x2 = 1;\n layerParam.lineCapTextureInfo.y2 = 0;\n routeLayerStyle.vecParam.push_back(layerParam);\n }\n {\n RouteLayerParam layerParam;\n layerParam.useColor = 1;\n layerParam.useCap = 1;\n layerParam.canBeCovered = 0;\n layerParam.showArrow = 1;\n layerParam.needColorGradient = 0;\n layerParam.lineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.borderLineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.fillMarker = _getMarkerIdByName.call("map_lr_feeroad");\n layerParam.simple3DFillMarker = -1;\n layerParam.borderMarker = _getMarkerIdByName.call("map_lr_feeroad");\n layerParam.fillColor = 0xfff38c1e;\n layerParam.borderColor = -1;\n layerParam.routeTexture = (MapRouteTexture)32;\n layerParam.lineTextureInfo.x1 = 0;\n layerParam.lineTextureInfo.y1 = 0.5;\n layerParam.lineTextureInfo.x2 = 1;\n layerParam.lineTextureInfo.y2 = 0.5;\n layerParam.lineTextureInfo.textureLen = _scaleFactor * 32;\n layerParam.lineCapTextureInfo.x1 = 0;\n layerParam.lineCapTextureInfo.y1 = 0.5;\n layerParam.lineCapTextureInfo.x2 = 1;\n layerParam.lineCapTextureInfo.y2 = 0.75;\n routeLayerStyle.vecParam.push_back(layerParam);\n }\n {\n RouteLayerParam layerParam;\n layerParam.useColor = 1;\n layerParam.useCap = 1;\n layerParam.canBeCovered = 0;\n layerParam.showArrow = 1;\n layerParam.needColorGradient = 0;\n layerParam.lineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.borderLineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.fillMarker = _getMarkerIdByName.call("map_lr_nofeeroad");\n layerParam.simple3DFillMarker = -1;\n layerParam.borderMarker = _getMarkerIdByName.call("map_lr_nofeeroad");\n layerParam.fillColor = 0xfff38c1e;\n layerParam.routeTexture = (MapRouteTexture)33;\n layerParam.lineTextureInfo.x1 = 0;\n layerParam.lineTextureInfo.y1 = 0.5;\n layerParam.lineTextureInfo.x2 = 1;\n layerParam.lineTextureInfo.y2 = 0.5;\n layerParam.lineTextureInfo.textureLen = _scaleFactor * 32;\n layerParam.lineCapTextureInfo.x1 = 0;\n layerParam.lineCapTextureInfo.y1 = 0.5;\n layerParam.lineCapTextureInfo.x2 = 1;\n layerParam.lineCapTextureInfo.y2 = 0.75;\n routeLayerStyle.vecParam.push_back(layerParam);\n }\n {\n RouteLayerParam layerParam;\n layerParam.useColor = 0;\n layerParam.useCap = 1;\n layerParam.canBeCovered = 0;\n layerParam.showArrow = 0;\n layerParam.needColorGradient = 0;\n layerParam.lineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.borderLineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.fillMarker = _getMarkerIdByName.call("map_traffic_platenum_restrict_hl");\n layerParam.simple3DFillMarker = -1;\n layerParam.borderMarker = -1;\n layerParam.fillColor = 0xfffbeeb9;\n layerParam.borderColor = -1;\n layerParam.routeTexture = (MapRouteTexture)34;\n layerParam.lineTextureInfo.x1 = 0;\n layerParam.lineTextureInfo.y1 = 1;\n layerParam.lineTextureInfo.x2 = 0.5;\n layerParam.lineTextureInfo.y2 = 0;\n layerParam.lineTextureInfo.textureLen = _scaleFactor * 32;\n layerParam.lineCapTextureInfo.x1 = 0.5;\n layerParam.lineCapTextureInfo.y1 = 0.25;\n layerParam.lineCapTextureInfo.x2 = 1;\n layerParam.lineCapTextureInfo.y2 = 0.6;\n routeLayerStyle.vecParam.push_back(layerParam);\n }\n {\n RouteLayerParam layerParam;\n layerParam.useColor = 1;\n layerParam.useCap = 0;\n layerParam.canBeCovered = 0;\n layerParam.showArrow = 0;\n layerParam.needColorGradient = 0;\n layerParam.lineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.borderLineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.fillMarker = _getMarkerIdByName.call("global_image_map_ferry");\n layerParam.simple3DFillMarker = -1;\n layerParam.borderMarker = -1;\n layerParam.fillColor = 0xff0096ff;\n layerParam.borderColor = 0xff0096ff;\n layerParam.routeTexture = (MapRouteTexture)38;\n layerParam.lineTextureInfo.x1 = 0;\n layerParam.lineTextureInfo.y1 = 1;\n layerParam.lineTextureInfo.x2 = 1;\n layerParam.lineTextureInfo.y2 = 0;\n layerParam.lineTextureInfo.textureLen = _scaleFactor * 16;\n routeLayerStyle.vecParam.push_back(layerParam);\n }\n {\n RouteLayerParam layerParam;\n layerParam.useColor = 1;\n layerParam.useCap = 1;\n layerParam.canBeCovered = 0;\n layerParam.showArrow = 1;\n layerParam.needColorGradient = 0;\n layerParam.lineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.borderLineWidth = _scaleFactor * _normalRouteWidth;\n layerParam.fillMarker = _getMarkerIdByName.call("map_lr_road_white_front_select");\n layerParam.simple3DFillMarker = -1;\n layerParam.borderMarker = _getMarkerIdByName.call("map_lr_road_white_back_select");\n layerParam.fillColor = 0xff4784FF;\n layerParam.borderColor = 0xff325CB3;\n layerParam.routeTexture = (MapRouteTexture)39;\n layerParam.lineTextureInfo.x1 = 0;\n layerParam.lineTextureInfo.y1 = 0.5;\n layerParam.lineTextureInfo.x2 = 1;\n layerParam.lineTextureInfo.y2 = 0.5;\n layerParam.lineTextureInfo.textureLen = _scaleFactor * 32;\n layerParam.lineCapTextureInfo.x1 = 0;\n layerParam.lineCapTextureInfo.y1 = 0.5;\n layerParam.lineCapTextureInfo.x2 = 1;\n layerParam.lineCapTextureInfo.y2 = 0;\n routeLayerStyle.vecParam.push_back(layerParam);\n }\n routeLayerStyle.arrow3DTextureId = -1;\n routeLayerStyle.highLightParam.fillColorHightLight = 0;\n routeLayerStyle.shadowParam.shadowColor = 0xff44658d;\n routeLayerStyle.shadowParam.shadowPassColor = 0xff44658d;\n routeLayerStyle.shadowParam.shadowMarker = -1;\n routeLayerStyle.shadowParam.routeOffsetPixels = 15;\n routeLayerStyle.mPassedColor[0] = 0xffadb2b6;\n routeLayerStyle.mPassedColor[1] = 0xff8d8f91;\n routeLayerStyle.mPassedColor[2] = 0xffffffff;\n }\n }\n break;\n case RouteLayerStyleType.Main_Offline_HightLight:\n {}\n break;\n case RouteLayerStyleType.EaglEye_Normal:\n {}\n break;\n case RouteLayerStyleType.EaglEye_Offline:\n {}\n break;\n case RouteLayerStyleType.EaglEye_HightLight:\n {}\n break;\n case RouteLayerStyleType.EaglEye_Offline_HightLight:\n {}\n break;\n }\n\n return true;\n }\n
{\n\t"route_online_highlight": {\n\t\t"route_layer_style": {\n\t\t\t"route_style_param": [{\n\t\t\t\t"route_param": {\n\t\t\t\t\t"use_color": 1,\n\t\t\t\t\t"use_cap": 0,\n\t\t\t\t\t"can_be_covered": 0,\n\t\t\t\t\t"show_arrow": 0,\n\t\t\t\t\t"need_color_gradient": 0,\n\t\t\t\t\t"line_width": 24,\n\t\t\t\t\t"border_line_width": 24,\n\t\t\t\t\t"fill_marker": "map_lr_dott_car_light",\n\t\t\t\t\t"simple_3D_fill_marker": -1,\n\t\t\t\t\t"border_marker": "map_lr_dott_car_light",\n\t\t\t\t\t"fill_color": "0xff4784FF",\n\t\t\t\t\t"border_color": "0xff325CB3",\n\t\t\t\t\t"route_texture": 0,\n\t\t\t\t\t"line_texture_info": {\n\t\t\t\t\t\t"x1": 0,\n\t\t\t\t\t\t"y1": 1,\n\t\t\t\t\t\t"x2": 1,\n\t\t\t\t\t\t"y2": 0,\n\t\t\t\t\t\t"texture_len": 32\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\t"route_param": {\n\t\t\t\t\t"use_color": 1,\n\t\t\t\t\t"use_cap": 1,\n\t\t\t\t\t"can_be_covered": 0,\n\t\t\t\t\t"show_arrow": 1,\n\t\t\t\t\t"need_color_gradient": 0,\n\t\t\t\t\t"line_width": 24,\n\t\t\t\t\t"border_line_width": 24,\n\t\t\t\t\t"fill_marker": "map_lr_road_white_front_select",\n\t\t\t\t\t"simple_3D_fill_marker": -1,\n\t\t\t\t\t"border_marker": "map_lr_road_white_back_select",\n\t\t\t\t\t"fill_color": "0xff4784FF",\n\t\t\t\t\t"border_color": "0xff325CB3",\n\t\t\t\t\t"route_texture": 1,\n\t\t\t\t\t"line_texture_info": {\n\t\t\t\t\t\t"x1": 0,\n\t\t\t\t\t\t"y1": 0.5,\n\t\t\t\t\t\t"x2": 1,\n\t\t\t\t\t\t"y2": 0.5,\n\t\t\t\t\t\t"texture_len": 32\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\t"route_param": {\n\t\t\t\t\t"use_color": 1,\n\t\t\t\t\t"use_cap": 1,\n\t\t\t\t\t"can_be_covered": 0,\n\t\t\t\t\t"show_arrow": 1,\n\t\t\t\t\t"need_color_gradient": 0,\n\t\t\t\t\t"line_width": 24,\n\t\t\t\t\t"border_line_width": 24,\n\t\t\t\t\t"fill_marker": "map_lr_road_white_front_select",\n\t\t\t\t\t"simple_3D_fill_marker": -1,\n\t\t\t\t\t"border_marker": "map_lr_road_white_back_select",\n\t\t\t\t\t"fill_color": "0xff4784FF",\n\t\t\t\t\t"border_color": "0xff325CB3",\n\t\t\t\t\t"route_texture": 2,\n\t\t\t\t\t"line_texture_info": {\n\t\t\t\t\t\t"x1": 0,\n\t\t\t\t\t\t"y1": 0.5,\n\t\t\t\t\t\t"x2": 1,\n\t\t\t\t\t\t"y2": 0.5,\n\t\t\t\t\t\t"texture_len": 32\n\t\t\t\t\t},\n\t\t\t\t\t"line_cap_texture_info": {\n\t\t\t\t\t\t"x1": 0,\n\t\t\t\t\t\t"y1": 0.5,\n\t\t\t\t\t\t"x2": 1,\n\t\t\t\t\t\t"y2": 0\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\t"route_param": {\n\t\t\t\t\t"use_color": 1,\n\t\t\t\t\t"use_cap": 1,\n\t\t\t\t\t"can_be_covered": 0,\n\t\t\t\t\t"show_arrow": 1,\n\t\t\t\t\t"need_color_gradient": 0,\n\t\t\t\t\t"line_width": 24,\n\t\t\t\t\t"border_line_width": 24,\n\t\t\t\t\t"fill_marker": "map_lr_road_white_front_select",\n\t\t\t\t\t"simple_3D_fill_marker": -1,\n\t\t\t\t\t"border_marker": "map_lr_road_white_back_select",\n\t\t\t\t\t"fill_color": "0xff00BA6A",\n\t\t\t\t\t"border_color": "0xff006E4A",\n\t\t\t\t\t"route_texture": 3,\n\t\t\t\t\t"line_texture_info": {\n\t\t\t\t\t\t"x1": 0,\n\t\t\t\t\t\t"y1": 0.5,\n\t\t\t\t\t\t"x2": 1,\n\t\t\t\t\t\t"y2": 0.5,\n\t\t\t\t\t\t"texture_len": 32\n\t\t\t\t\t},\n\t\t\t\t\t"line_cap_texture_info": {\n\t\t\t\t\t\t"x1": 0,\n\t\t\t\t\t\t"y1": 0.5,\n\t\t\t\t\t\t"x2": 1,\n\t\t\t\t\t\t"y2": 0\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\t"route_param": {\n\t\t\t\t\t"use_color": 1,\n\t\t\t\t\t"use_cap": 1,\n\t\t\t\t\t"can_be_covered": 0,\n\t\t\t\t\t"show_arrow": 1,\n\t\t\t\t\t"need_color_gradient": 0,\n\t\t\t\t\t"line_width": 24,\n\t\t\t\t\t"border_line_width": 24,\n\t\t\t\t\t"fill_marker": "map_lr_road_white_front_select",\n\t\t\t\t\t"simple_3D_fill_marker": -1,\n\t\t\t\t\t"border_marker": "map_lr_road_white_back_select",\n\t\t\t\t\t"fill_color": "0xffFBC500",\n\t\t\t\t\t"border_color": "0xffB28D02",\n\t\t\t\t\t"route_texture": 4,\n\t\t\t\t\t"line_texture_info": {\n\t\t\t\t\t\t"x1": 0,\n\t\t\t\t\t\t"y1": 0.5,\n\t\t\t\t\t\t"x2": 1,\n\t\t\t\t\t\t"y2": 0.5,\n\t\t\t\t\t\t"texture_len": 32\n\t\t\t\t\t},\n\t\t\t\t\t"line_cap_texture_info": {\n\t\t\t\t\t\t"x1": 0,\n\t\t\t\t\t\t"y1": 0.5,\n\t\t\t\t\t\t"x2": 1,\n\t\t\t\t\t\t"y2": 0\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\t"route_param": {\n\t\t\t\t\t"use_color": 1,\n\t\t\t\t\t"use_cap": 1,\n\t\t\t\t\t"can_be_covered": 0,\n\t\t\t\t\t"show_arrow": 1,\n\t\t\t\t\t"need_color_gradient": 0,\n\t\t\t\t\t"line_width": 24,\n\t\t\t\t\t"border_line_width": 24,\n\t\t\t\t\t"fill_marker": "map_lr_road_white_front_select",\n\t\t\t\t\t"simple_3D_fill_marker": -1,\n\t\t\t\t\t"border_marker": "map_lr_road_white_back_select",\n\t\t\t\t\t"fill_color": "0xffEC003E",\n\t\t\t\t\t"border_color": "0xff990D2B",\n\t\t\t\t\t"route_texture": 5,\n\t\t\t\t\t"line_texture_info": {\n\t\t\t\t\t\t"x1": 0,\n\t\t\t\t\t\t"y1": 0.5,\n\t\t\t\t\t\t"x2": 1,\n\t\t\t\t\t\t"y2": 0.5,\n\t\t\t\t\t\t"texture_len": 32\n\t\t\t\t\t},\n\t\t\t\t\t"line_cap_texture_info": {\n\t\t\t\t\t\t"x1": 0,\n\t\t\t\t\t\t"y1": 0.5,\n\t\t\t\t\t\t"x2": 1,\n\t\t\t\t\t\t"y2": 0\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\t"route_param": {\n\t\t\t\t\t"use_color": 1,\n\t\t\t\t\t"use_cap": 1,\n\t\t\t\t\t"can_be_covered": 0,\n\t\t\t\t\t"show_arrow": 1,\n\t\t\t\t\t"need_color_gradient": 0,\n\t\t\t\t\t"line_width": 24,\n\t\t\t\t\t"border_line_width": 24,\n\t\t\t\t\t"fill_marker": "map_lr_road_white_front_select",\n\t\t\t\t\t"simple_3D_fill_marker": -1,\n\t\t\t\t\t"border_marker": "map_lr_road_white_back_select",\n\t\t\t\t\t"fill_color": "0xffA8090B",\n\t\t\t\t\t"border_color": "0xff7C090B",\n\t\t\t\t\t"route_texture": 6,\n\t\t\t\t\t"line_texture_info": {\n\t\t\t\t\t\t"x1": 0,\n\t\t\t\t\t\t"y1": 0.5,\n\t\t\t\t\t\t"x2": 1,\n\t\t\t\t\t\t"y2": 0.5,\n\t\t\t\t\t\t"texture_len": 32\n\t\t\t\t\t},\n\t\t\t\t\t"line_cap_texture_info": {\n\t\t\t\t\t\t"x1": 0,\n\t\t\t\t\t\t"y1": 0.5,\n\t\t\t\t\t\t"x2": 1,\n\t\t\t\t\t\t"y2": 0\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\t"route_param": {\n\t\t\t\t\t"use_color": 0,\n\t\t\t\t\t"use_cap": 0,\n\t\t\t\t\t"can_be_covered": 0,\n\t\t\t\t\t"show_arrow": 0,\n\t\t\t\t\t"need_color_gradient": 0,\n\t\t\t\t\t"line_width": 24,\n\t\t\t\t\t"border_line_width": 24,\n\t\t\t\t\t"fill_marker": "global_image_map_aolr",\n\t\t\t\t\t"simple_3D_fill_marker": -1,\n\t\t\t\t\t"border_marker": "global_image_map_aolr",\n\t\t\t\t\t"fill_color": "0xffffffff",\n\t\t\t\t\t"border_color": "0xffffffff",\n\t\t\t\t\t"route_texture": 7,\n\t\t\t\t\t"line_texture_info": {\n\t\t\t\t\t\t"x1": 0,\n\t\t\t\t\t\t"y1": 1,\n\t\t\t\t\t\t"x2": 1,\n\t\t\t\t\t\t"y2": 0,\n\t\t\t\t\t\t"texture_len": 80\n\t\t\t\t\t},\n\t\t\t\t\t"line_cap_texture_info": {\n\t\t\t\t\t\t"x1": 0.5,\n\t\t\t\t\t\t"y1": 0.25,\n\t\t\t\t\t\t"x2": 1,\n\t\t\t\t\t\t"y2": 0.6\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\t"route_param": {\n\t\t\t\t\t"use_color": 1,\n\t\t\t\t\t"use_cap": 1,\n\t\t\t\t\t"can_be_covered": 0,\n\t\t\t\t\t"show_arrow": 1,\n\t\t\t\t\t"need_color_gradient": 0,\n\t\t\t\t\t"line_width": 24,\n\t\t\t\t\t"border_line_width": 24,\n\t\t\t\t\t"fill_marker": "map_lr_road_white_front_select",\n\t\t\t\t\t"simple_3D_fill_marker": -1,\n\t\t\t\t\t"border_marker": "map_lr_road_white_back_select",\n\t\t\t\t\t"fill_color": "0xff007D5D",\n\t\t\t\t\t"border_color": "0xff00654B",\n\t\t\t\t\t"route_texture": 16,\n\t\t\t\t\t"line_texture_info": {\n\t\t\t\t\t\t"x1": 0,\n\t\t\t\t\t\t"y1": 0.5,\n\t\t\t\t\t\t"x2": 1,\n\t\t\t\t\t\t"y2": 0.5,\n\t\t\t\t\t\t"texture_len": 32\n\t\t\t\t\t},\n\t\t\t\t\t"line_cap_texture_info": {\n\t\t\t\t\t\t"x1": 0,\n\t\t\t\t\t\t"y1": 0.5,\n\t\t\t\t\t\t"x2": 1,\n\t\t\t\t\t\t"y2": 0\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\t"route_param": {\n\t\t\t\t\t"use_color": 1,\n\t\t\t\t\t"use_cap": 1,\n\t\t\t\t\t"can_be_covered": 0,\n\t\t\t\t\t"show_arrow": 1,\n\t\t\t\t\t"need_color_gradient": 0,\n\t\t\t\t\t"line_width": 24,\n\t\t\t\t\t"border_line_width": 24,\n\t\t\t\t\t"fill_marker": "map_lr_feeroad",\n\t\t\t\t\t"simple_3D_fill_marker": -1,\n\t\t\t\t\t"border_marker": "map_lr_feeroad",\n\t\t\t\t\t"fill_color": "0xfff38c1e",\n\t\t\t\t\t"border_color": "-1",\n\t\t\t\t\t"route_texture": 32,\n\t\t\t\t\t"line_texture_info": {\n\t\t\t\t\t\t"x1": 0,\n\t\t\t\t\t\t"y1": 0.5,\n\t\t\t\t\t\t"x2": 1,\n\t\t\t\t\t\t"y2": 0.5,\n\t\t\t\t\t\t"texture_len": 32\n\t\t\t\t\t},\n\t\t\t\t\t"line_cap_texture_info": {\n\t\t\t\t\t\t"x1": 0,\n\t\t\t\t\t\t"y1": 0.5,\n\t\t\t\t\t\t"x2": 1,\n\t\t\t\t\t\t"y2": 0.75\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\t"route_param": {\n\t\t\t\t\t"use_color": 1,\n\t\t\t\t\t"use_cap": 1,\n\t\t\t\t\t"can_be_covered": 0,\n\t\t\t\t\t"show_arrow": 1,\n\t\t\t\t\t"need_color_gradient": 0,\n\t\t\t\t\t"line_width": 24,\n\t\t\t\t\t"border_line_width": 24,\n\t\t\t\t\t"fill_marker": "map_lr_nofeeroad",\n\t\t\t\t\t"simple_3D_fill_marker": -1,\n\t\t\t\t\t"border_marker": "map_lr_nofeeroad",\n\t\t\t\t\t"fill_color": "0xfff38c1e",\n\t\t\t\t\t"border_color": "",\n\t\t\t\t\t"route_texture": 33,\n\t\t\t\t\t"line_texture_info": {\n\t\t\t\t\t\t"x1": 0,\n\t\t\t\t\t\t"y1": 0.5,\n\t\t\t\t\t\t"x2": 1,\n\t\t\t\t\t\t"y2": 0.5,\n\t\t\t\t\t\t"texture_len": 32\n\t\t\t\t\t},\n\t\t\t\t\t"line_cap_texture_info": {\n\t\t\t\t\t\t"x1": 0,\n\t\t\t\t\t\t"y1": 0.5,\n\t\t\t\t\t\t"x2": 1,\n\t\t\t\t\t\t"y2": 0.75\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\t"route_param": {\n\t\t\t\t\t"use_color": 0,\n\t\t\t\t\t"use_cap": 1,\n\t\t\t\t\t"can_be_covered": 0,\n\t\t\t\t\t"show_arrow": 0,\n\t\t\t\t\t"need_color_gradient": 0,\n\t\t\t\t\t"line_width": 24,\n\t\t\t\t\t"border_line_width": 24,\n\t\t\t\t\t"fill_marker": "map_traffic_platenum_restrict_hl",\n\t\t\t\t\t"simple_3D_fill_marker": -1,\n\t\t\t\t\t"border_marker": "-1",\n\t\t\t\t\t"fill_color": "0xfffbeeb9",\n\t\t\t\t\t"border_color": "-1",\n\t\t\t\t\t"route_texture": 34,\n\t\t\t\t\t"line_texture_info": {\n\t\t\t\t\t\t"x1": 0,\n\t\t\t\t\t\t"y1": 1,\n\t\t\t\t\t\t"x2": 0.5,\n\t\t\t\t\t\t"y2": 0,\n\t\t\t\t\t\t"texture_len": 32\n\t\t\t\t\t},\n\t\t\t\t\t"line_cap_texture_info": {\n\t\t\t\t\t\t"x1": 0.5,\n\t\t\t\t\t\t"y1": 0.25,\n\t\t\t\t\t\t"x2": 1,\n\t\t\t\t\t\t"y2": 0.6\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\t"route_param": {\n\t\t\t\t\t"use_color": 1,\n\t\t\t\t\t"use_cap": 0,\n\t\t\t\t\t"can_be_covered": 0,\n\t\t\t\t\t"show_arrow": 0,\n\t\t\t\t\t"need_color_gradient": 0,\n\t\t\t\t\t"line_width": 24,\n\t\t\t\t\t"border_line_width": 24,\n\t\t\t\t\t"fill_marker": "global_image_map_ferry",\n\t\t\t\t\t"simple_3D_fill_marker": -1,\n\t\t\t\t\t"border_marker": "-1",\n\t\t\t\t\t"fill_color": "0xff0096ff",\n\t\t\t\t\t"border_color": "0xff0096ff",\n\t\t\t\t\t"route_texture": 38,\n\t\t\t\t\t"line_texture_info": {\n\t\t\t\t\t\t"x1": 0,\n\t\t\t\t\t\t"y1": 1,\n\t\t\t\t\t\t"x2": 1,\n\t\t\t\t\t\t"y2": 0,\n\t\t\t\t\t\t"texture_len": 16\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\t"route_param": {\n\t\t\t\t\t"use_color": 1,\n\t\t\t\t\t"use_cap": 1,\n\t\t\t\t\t"can_be_covered": 0,\n\t\t\t\t\t"show_arrow": 1,\n\t\t\t\t\t"need_color_gradient": 0,\n\t\t\t\t\t"line_width": 24,\n\t\t\t\t\t"border_line_width": 24,\n\t\t\t\t\t"fill_marker": "map_lr_road_white_front_select",\n\t\t\t\t\t"simple_3D_fill_marker": -1,\n\t\t\t\t\t"border_marker": "map_lr_road_white_back_select",\n\t\t\t\t\t"fill_color": "0xff4784FF",\n\t\t\t\t\t"border_color": "0xff325CB3",\n\t\t\t\t\t"route_texture": 39,\n\t\t\t\t\t"line_texture_info": {\n\t\t\t\t\t\t"x1": 0,\n\t\t\t\t\t\t"y1": 0.5,\n\t\t\t\t\t\t"x2": 1,\n\t\t\t\t\t\t"y2": 0.5,\n\t\t\t\t\t\t"texture_len": 32\n\t\t\t\t\t},\n\t\t\t\t\t"line_cap_texture_info": {\n\t\t\t\t\t\t"x1": 0,\n\t\t\t\t\t\t"y1": 0.5,\n\t\t\t\t\t\t"x2": 1,\n\t\t\t\t\t\t"y2": 0\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}],\n\t\t\t"arrow_3D_marker": -1,\n\t\t\t"route_hight_light_param": {\n\t\t\t\t"fill_color_hight_light": 0,\n\t\t\t\t"border_color_hight_light": 0,\n\t\t\t\t"fill_color_normal": 0,\n\t\t\t\t"border_color_normal": 0,\n\t\t\t\t"arrow_color_normal": 0\n\t\t\t},\n\t\t\t"route_shadow_param": {\n\t\t\t\t"shadow_color":0,\n\t\t\t\t"shadow_pass_color":0,\n\t\t\t\t"shadow_marker":0,\n\t\t\t\t"shadow_marker_info":"",\n\t\t\t\t"route_offset_pixels":5\n\t\t\t},\n\t\t\t"route_grey_passed_param": {\n\t\t\t\t"fill_color": "0xffb2c6d4",\n\t\t\t\t"border_color": "0xff8b96a5",\n\t\t\t\t"arrow_color": "0xffd9e0e8"\n\t\t\t}\n\t\t}\n\t}\n}
/**\n* @brief 切换选中的路线,同时改变当前选中路线的样式,前提是已经存在和绘制了路线。\n* @param[in] index 第几条路线\n* @return bool 切换是否成功,超过当前路线个数返回false\n* @note thread:multi\n*/\nbool switchSelectedPath(int32_t index);