{"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"。另外如果走过的路段不显示出来,只需要把置灰颜色配置成透明即可。

场景图

路径规划页面下的路线

\"image.png\"

导航页面下的路线

\"image.png\"

路线走过置灰

\"image.png\"

路径规划页面下的室内停车场路线

\"image.png\"

时序图

算路结果回调

关键参数

Biz路线图层业务类型定义

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对象的回调中提供图层对应的样式和纹理即可。

路线绘制风格RouteDrawStyle

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重新绘制路线


路线的地图模式BizRouteMapMode

com.autonavi.gbl.layer.model.BizRouteMapMode

枚举值

描述

BizRouteMapModeMain

主图

BizRouteMapModeEagleEye

鹰眼

路线显示场景RouteLayerScene

com.autonavi.gbl.map.layer.model.RouteLayerScene

枚举值

描述

RouteLayerSceneNormal

普通场景下的路线

RouteLayerSceneCharge

收费场景下的路线

RouteLayerSceneLimit

限行场景下的路线

RouteLayerSceneCimmute

通勤场景下的路线

RouteLayerSceneWrong

报错场景下的路线

路线显示场景RouteLayerDrawParam

com.autonavi.gbl.map.layer.model.RouteLayerDrawParam

参数

类型

描述

mIsSelected

boolean

是否被选中

mIsNavi

boolean

是否导航

mRouteScene

RouteLayerScene

路线显示场景

mRouteStyleType

RouteLayerStyleType

路线展示的类型

mIsHighLightRoadName

boolean

是否高亮路名

mIsMultipleMode

boolean

是否是多备选模式

路线展示的类型RouteLayerStyleType

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

鹰眼地图离线高度模式

路线纹理枚举MapRouteTexture

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

停车场路线

路线图层样式RouteLayerStyle

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

JSON配置

路线图层(示例)

{\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}

注意事项

纹理坐标配置方法

  1. 路线样式配置中涉及到线纹理坐标信息和线帽纹理坐标信息配置,请参考纹理坐标配置方法

路段绘制不出来或者绘制异常

  1. 路径线的配色以MapRouteTexture为单位,HMI配置的时候需要避免遗漏MapRouteTexture的色值配置
  1. 如极速绿路况:MapRouteTextureRapider(16)。如果遗漏会导致绘制出来的路径线存在某些路段不在路上异常情况。

切换路线闪烁问题

  1. 切换备选路线调用UpdatePaths会清除所有路线图层再重新绘制,建议使用SwitchSelectedPath,该接口不会清除路线,会去重新获取样式,减少清除所有路线重新绘制在性能上的消耗以及闪烁效果。
/**\n* @brief        切换选中的路线,同时改变当前选中路线的样式,前提是已经存在和绘制了路线。\n* @param[in]    index            第几条路线\n* @return       bool 切换是否成功,超过当前路线个数返回false\n* @note         thread:multi\n*/\nbool switchSelectedPath(int32_t index);

停车场路线绘制

  1. 停车场路线,需要添加到setParkingPathInfos和AddSplicePathRoutePointsInfo,并且通过SetParkFloor设置当前所处楼层,多个停车场存在多个路线,数组中起点路线在前,终点在后。
  2. 场内到场外算路,存在多条路线,导航期间,当前导航结束,需要调用SetCurPathId和SetParkFloor,切换车辆当前所处路径和楼层。


","body_lake":null,"pub_level":null,"status":"0","updated_at":"2022-04-06 07:04:14","deleted_at":null,"nameSpace":"mnlcaa/v610","browseCount":324,"collectCount":0,"estimateDate":135,"docStatus":0,"permissions":true,"overView":false}}