{"version":"0.1.0","code":"0000","result":true,"message":"处理成功","errdetail":"","timestamp":1671518031125,"data":{"id":71713026,"title":"6.4.1概述","slug":"fh4egk","format":"lake","bookId":26046811,"body":null,"body_draft":null,"body_html":"
在6.2初始化章节中我们介绍了图层服务的初始化,然后在具体业务场景中,我们需要获取到各图层控制器并调用图层控制器的业务图层接口来显示图层。本文将以沿途天气图层为例讲解大部分业务图层(除了鹰眼)是如何使用的。
其它的业务图层接口基本大同小异,都是确定业务图层的数据来源以及业务图层接口,然后调用接口并配置图层的样式。
另外,所有业务图层,默认可点击,默认不启用图层内碰撞,默认不启用图层避让,所有比例尺范围可显示。
序号 | 图层控制器 | 说明 | 图层名 | 图层BizType | 图层配置名 | 图元类型 |
1 | BizAGroupControl | 组队业务图层控制器 | 组队图层 组队终点图层 | BizAGroupTypeAGroup BizAGroupTypeEndPoint | "agroup_layer" "agroup_endpoint_layer" | PointLayerItem PointLayerItem |
2 | BizAreaControl | 区域类业务图层控制器 | Range On Map多边形图层 Range On Map圆形图层 Range On Map多边形边线图层 Range On Map圆形边线图层 多边形电量耗尽扎标点图层 圆形电量耗尽扎标点图层 限行区域图层 终点区域父节点图层 终点区域子节点图层 终点区域图层 终点区域边线图层 室内地图蒙版 | BizAreaTypeRangeOnMapPolygon BizAreaTypeRangeOnMapCircle BizAreaTypeRangeOnMapPolygonLine BizAreaTypeRangeOnMapCircleLine BizAreaTypePolygonExhaustedPoint BizAreaTypeCircleExhaustedPoint BizAreaTypeRestrict BizAreaTypeEndAreaParentPoint BizAreaTypeEndAreaChildPoint BizAreaTypeEndAreaPolygon BizAreaTypeEndAreaPolyline BizAreaTypeRangeOnMapGradient | "area_range_onmap_polygon_layer" "area_range_onmap_circle_layer" "area_range_onmap_polygon_line_layer" "area_range_onmap_circle_line_layer" "area_range_onmap_polygon_exhaustedPoint_layer" "area_range_onmap_circle_exhaustedPoint_layer" "route_restrict_layer" "route_end_area_parent_layer" "route_end_area_child_layer" "route_end_area_polygon_layer" "route_end_area_polyline_layer" "indoor_masking_layer" | PolygonLayerItem PolygonLayerItem LineLayerItem LineLayerItem PointLayerItem PointLayerItem PolygonLayerItem,LineLayerItem EndAreaPointLayerItem EndAreaPointLayerItem PolygonLayerItem LineLayerItem RasterImageLayerItem |
3 | BizCarControl | 车标业务图层控制器 | 导航车标 巡航车标 搜索结果车标 路径规划车标 熟路模式车标 导航鹰眼车标 | BizCarTypeGuide BizCarTypeCruise BizCarTypeSearch BizCarTypeRoute BizCarTypeFamiliar BizCarTypeEagleEye | "car_guide_layer" "car_cruise_layer" "car_search_layer" "car_route_layer" "car_familiar_layer" "car_eagleeye_layer" | SpeedCarLayerItem |
4 | BizCustomControl | 自定义业务图层控制器 | 自定义点图层1 自定义线图层1 自定义多边形图层1 自定义扇形/圆形图层1 自定义箭头图层1 自定义面板图层1 | BizCustomTypePoint1 BizCustomTypeLine1 BizCustomTypePolygon1 BizCustomTypeCircle1 BizCustomTypeArrow1 BizCustomTypePlane1 | "point_custom_layer_1" "line_custom_layer_1" "polygon_custom_layer_1" "circle_custom_layer_1" "arrow_custom_layer_1" "plane_custom_layer_1" | CustomPointLayerItem CustomLineLayerItem CustomPolygonLayerItem CustomCircleLayerItem CustomArrowLayerItem CustomPlaneLayerItem |
5 | BizFlyLineControl | 飞线图层控制器 | 飞线线,仅用于飞线的线获取 飞线点,仅用于飞线的点获取 | BizFlyLineTypeLine BizFlyLineTypePoint | "car_end_line_layer" "car_end_point_layer" | LineLayerItem PointLayerItem |
6 | BizGuideEagleEyeControl | 鹰眼业务图层控制器 | / | / | / | |
7 | BizLabelControl | 扎标业务图层控制器 | 巡航道路线扎标图层 分歧路口扎标图层 巡航拥堵加粗图层 路径上弹出添加途径点图层 路径上弹出移除途径点图层 路径上弹出交通事件图层 路径上弹出搜索的点图层 终点区域弹出框图层 gps轨迹点的图层 | BizLabelTypeCruiseLane BizLabelTypeGuideMixFork BizLabelTypeCruiseCongestion BizLabelTypeRoutePopAddViaPoint BizLabelTypeRoutePopRemoveViaPoint BizLabelTypeRoutePopTrafficEvent BizLabelTypeRoutePopSearchPoint BizLabelTypeRoutePopEndArea BizLabelTypeGpsPoints | "cruise_lane_layer" "guide_mix_fork_layer" "cruise_congestion_layer" "route_pop_add_via_point_layer": "route_pop_remove_via_point_layer" "route_pop_traffic_event_layer" "route_pop_search_layer" "route_pop_end_area_layer" "gps_point_layer" | PointLayerItem GuideMixForkLayerItem CruiseCongestionItem SearchAlongWayLayerItem PopPointLayerItem PopPointLayerItem PopPointLayerItem PopPointLayerItem PointLayerItem |
8 | BizRoadCrossControl | 路口大图业务图层控制器 | 栅格图图层 矢量图图层 真实城市图层(精品三维) | BizRoadCrossTypeRasterImage BizRoadCrossTypeVector BizRoadCrossTypeRealCity | "guide_raster_image_layer" "guide_vector_cross_layer" | RasterImageLayerItem VectorCrossLayerItem RctRouteLayerItem |
9 | BizRoadFacilityControl | 交通设施业务图层控制器 | 巡航摄像头交通设施图层 巡航拥堵事件交通设施图层 巡航交通设施图层 巡航拥堵气泡图层 巡航交通事件图层 导航电子眼交通设施图层 导航电子眼交通设施图层 区间测速电子眼交通设施图层 导航交通设施交通设施图层 导航交通事件交通设施图层 导航下红绿灯信号状态图层 本地交通事件点图层业务 本地交通事件线图层业务 | BizRoadFacilityTypeCruiseCamera BizRoadFacilityTypeCruiseCongestion BizRoadFacilityTypeCruiseFacility BizRoadFacilityTypeCruiseCongestionPrompt BizRoadFacilityTypeCruiseEvent BizRoadFacilityTypeGuideCameraActive BizRoadFacilityTypeGuideCameraNormal BizRoadFacilityTypeGuideIntervalCamera BizRoadFacilityTypeGuideFacility BizRoadFacilityTypeGuideTrafficEvent BizRoadFacilityTypeGuideTrafficLight BizRoadFacilityTypeLocalTrafficEventPoint BizRoadFacilityTypeLocalTrafficEventLine | "cruise_camera_layer" "cruise_congestion_event_layer" "cruise_facility_layer" "cruise_congestion_prompt_layer" "cruise_event_layer" "guide_camera_active_layer" "guide_camera_normal_layer" "guide_interval_camera_layer" "guide_facility_layer" "guide_traffic_event_layer" "guide_traffic_light_layer" "local_traffic_event_point_layer" "local_traffic_event_line_layer" | CruiseFacilityLayerItem CruiseCongestionEventLayerItem CruiseFacilityLayerItem CruiseCongestionPromptLayerItem CruiseEventLayerItem GuideCameraLayerItem GuideCameraLayerItem GuideIntervalCameraLayerItem GuideFacilityLayerItem GuideTrafficEventLayerItem GuideTrafficLightLayerItem LocalTrafficEventPointLayerItem LocalTrafficEventLineLayerItem |
10 | BizGuideRouteControl | 路线业务图层控制器 | 路线的起点图层 路线的终点图层 路线的途经点图层 路线的最后一个点图层 鹰眼图路线的起点图层 鹰眼图路线的终点图层 鹰眼图路线的途经点图层 对比路线上的Tip图层 路线上的路径图层 避让路线图层 鹰眼图路线上的路径图层 拥堵事件图层 拥堵路线图层 天气扎标图层 服务区扎标图层 途经路扎标图层 路线箭头图层 路线的电子眼图层 路线的红绿灯图层 路线上的封路事件 路线外的封路事件 路线上事件tips图层 禁行图层 路线的能源耗尽点图层 路线的剩余电量点图层 电量关键点图层 路径线上关于路况的扎标 导航拥堵时长图层 导航多备选标签图层 导航路径上路牌图层 导航下发的拥堵等交通事件图层 起终点连线的连线图层 起终点连线的终点图层 起终点连线的连线+终点图层 三急一超图层 ODD(设计运行范围)线图层 ODD(设计运行范围)点图层 途径路ETA和剩余电量图层 | BizRouteTypeStartPoint BizRouteTypeEndPoint BizRouteTypeViaPoint BizRouteTypeEndPathPoint BizRouteTypeEagleStartPoint BizRouteTypeEagleEndPoint BizRouteTypeEagleViaPoint BizRouteTypeCompareTip BizRouteTypePath BizRouteTypeDodgeLine BizRouteTypeEaglePath BizRouteTypeJamPoint BizRouteTypeJamLine BizRouteTypeWeather BizRouteTypeRestArea BizRouteTypeViaRoad BizRouteTypeArrow BizRouteTypeLittleCamera BizRouteTypeTrafficLight BizRouteTypeTrafficBlock BizRouteTypeTrafficBlockOuter BizRouteTypeTrafficEventTip BizRouteTypeForbidden BizRouteTypeEnergyEmptyPoint BizRouteTypeEnergyRemainPoint BizRouteTypeEnergyKeyPoint BizRouteTypePathTMCPoint BizRouteTypeGuideCongestion BizRouteTypeGuideLabel BizRouteTypeGuidePathBoard BizRouteTypeGuideEtaEvent BizRouteTypeStartEndLine BizRouteTypeStartEndPoint BizRouteTypeStartEndLinePoint BizRouteTypeThreeUrgent BizRouteTypeOddLine BizRouteTypeOddPoint BizRouteTypeViaETA | "route_start_point_layer" "route_end_point_layer" "route_via_point_layer" "route_end_path_point_layer" "route_eagle_start_point_layer" "route_eagle_end_point_layer" "route_eagle_via_point_layer" "route_compare_tip_layer" "route_path_layer" "route_dodge_line_layer" "route_eagle_path_layer" "route_jam_point_layer" "route_jam_line_layer" "route_weather_layer" "route_rest_area_layer" "route_via_road_layer" "route_arrow_layer" "route_little_camera_layer" "route_traffic_light_layer" "route_traffic_block_layer" "route_traffic_block_outer_layer" "route_traffic_event_tip_layer" "route_forbidden_layer" "route_energy_empty_point_layer" "route_energy_remain_point_layer" "route_energy_key_point_layer" "route_path_tmc_point_layer" "guide_congestion_layer" "guide_label_layer" "guide_path_board_layer" "guide_eta_event_layer" "route_start_end_line_layer" "route_start_end_point_layer" "route_three_urgent_layer" "route_odd_line_layer" "route_odd_point_layer" "route_via_eta_layer" | RoutePathPointItem RoutePathPointItem RoutePathPointItem PointLayerItem RoutePathPointItem RoutePathPointItem RoutePathPointItem RouteCompareTipsLayerItem RouteLayerItem LineLayerItem RouteLayerItem RouteJamPointLayerItem RouteJamLineLayerItem RouteWeatherLayerItem RouteRestAreaLayerItem RouteViaRoadLayerItem ArrowLayerItem PointLayerItem PointLayerItem RouteBlockLayerItem RouteBlockLayerItem RouteTrafficEventTipsLayerItem RouteForbiddenLayerItem RoutePathPointItem RoutePathPointItem PointLayerItem PathTMCPointLayerItem GuideCongestionLayerItem GuideLabelLayerItem PathBoardLayerItem GuideETAEventLayerItem LineLayerItem PointLayerItem LineLayerItem,PointLayerItem ThreeUrgentLayerItem LineLayerItem OddLayerItem ViaETALayerItem |
11 | BizSearchControl | 搜索业务图层控制器 | 搜索线图层 多边形搜索图层 多边形边框搜索图层 父节点搜索图层 子节点搜索图层 搜索POI中心点位置类型图层 搜索POI出入口类型图层 起始点搜索图层 沿途搜图层 沿途搜气泡图层 停车场图层 搜索充电桩图层 鹰眼搜索充电桩图层 沿途搜气泡图层 | BizSearchTypeLine BizSearchTypePoiEndAreaPolygon BizSearchTypePoiEndAreaPolyline BizSearchTypePoiParentPoint BizSearchTypePoiChildPoint BizSearchTypePoiCentralPos BizSearchTypePoiExitEntrance BizSearchTypePoiBeginEnd BizSearchTypePoiAlongRoute BizSearchTypePoiAlongRoutePop BizSearchTypePoiParkRoute BizSearchTypeChargeStation BizSearchTypeEagleChargeStation BizSearchTypePoiLabel | "search_line_layer" "search_polygon_layer" "search_polyline_layer" "search_point_root_layer" "search_point_children_layer" "search_point_centralpos_layer" "search_point_exitentrance_layer" "search_point_beginend_layer" "search_along_route_layer" "search_along_route_pop_layer" "search_park_route_layer" "search_charge_station_layer" "search_eagle_charge_station_layer" "search_poi_label_layer" | LineLayerItem PolygonLayerItem LineLayerItem SearchParentLayerItem SearchChildLayerItem PointLayerItem SearchExitEntranceLayerItem SearchBeginEndLayerItem SearchAlongWayLayerItem SearchAlongWayPopLayerItem PointLayerItem PointLayerItem PointLayerItem PointLayerItem |
12 | BizUserControl | 用户业务图层控制器 | 用户历史轨迹图层 用户历史轨迹(线)图层 Send2Car图层 收藏夹中主图查看模式图层 收藏夹中poi查看模式图层 彩虹线图层 | BizUserTypeGpsTrack BizUserTypeGpsTrackLine BizUserTypeSendToCar BizUserTypeFavoriteMain BizUserTypeFavoritePoi BizUserTypeRainbowLine | "user_gps_track_point_layer" "user_gps_track_line_layer" "user_send_to_car_layer", "user_favorite_main_layer" "user_favorite_poi_layer" "user_rainbow_line_layer" | GpsTrackPointLayerItem LineLayerItem PointLayerItem FavoritePointLayerItem FavoritePointLayerItem LineLayerItem |
从所有图层控制器的业务接口调用中,除了可以触发各业务图层的调用,还可以通过带BizType参数的接口,控制图层的显隐、设置为焦点态、取消焦点态、是否可点击、清除图层的图元、设置样式对象、更新所有图层样式、添加点击观察者等等。参考下面的例子:
BizGuideRouteControl guideRouteControl = bizControService.getBizGuideRouteControl();\nif (guideRouteControl != null)\n{\n guideRouteControl.clearAllItems(BizRouteTypeWeather);\n guideRouteControl.setVisible(BizRouteTypeWeather, false);\n guideRouteControl.setClickable(BizRouteTypeWeather, false);\n guideRouteControl.setFocus(BizRouteTypeWeather, "1", true);\n guideRouteControl.clearFocus(BizRouteTypeWeather);\n}
另外,对于那些没有BizType参数的接口,则是操作于当前图层控制器包含的所有业务图层。
除了可以通过控制器直接对图层进行一些基础操作,比如显示、隐藏、更改显示比例尺、设置是否可点击,还可以通过控制器获取到具体某一个业务图层,再调用基础图层的所有接口完成更多的图层图元操作能力。参考下面的例子:
BaserLayer weatherLayer = bizControService.getBizGuideRouteControl().getRouteLayer(BizRouteTypeWeather);\nif (weatherLayer != null)\n{\n //使用基础图层能力\n weatherLayer.setClickable(false);\n weatherLayer.setVisible(false);\n \n ArrayList<LayerItem> items = weatherLayer.getAllItems();\n if (items.size() > 0)\n {\n //使用基础图元能力\n LayerItem item = items.get(i);\n if (item != null)\n {\n item.setVisible(true);\n }\n }\n}
总之,通过这种方式获取到业务图层的基类BaseLayer,就可以使用基础图层或图元的所有能力。
其它业务图层控制器也类似,都有相关接口获取到它们的业务图层。
BizControService.getBizGuideRouteControl().updateRouteWeatherInfo(weatherInfos);
String com.autonavi.gbl.layer.BizControlService.getBizNameByType(int bizType)
例如:
bizControService.getBizNameByType(BizAGroupType.BizAGroupTypeAGroup)将返回"agroup_layer"
前序文档:沿途天气
参数名 | 参数内容 | 说明 |
BizType | com.autonavi.gbl.layer.model.BizRouteType.BizRouteTypeWeather | 指定该业务图层类型 |
LayerItem | com.autonavi.gbl.layer.RouteWeatherLayerItem | 指定该业务图层使用的图元类型 |
DataSource | com.autonavi.gbl.route.RouteService.RequestPathWeather,com.autonavi.gbl.route.observer.IRouteWeatherObserver.OnWeatherUpdated | 说明该业务图层接口的数据来源 |
//清除control中包含的所有图层的所有图元,内部会释放图元的内存\nvoid com.autonavi.gbl.layer.BizControl.clearAllItems()\n\n//清除所有图元,内部会释放图元的内存\nvoid com.autonavi.gbl.layer.BizControl.clearAllItems(long bizType)\n\n//清除焦点\nvoid com.autonavi.gbl.layer.BizControl.clearFocus(long bizType)\t\n\n//控制图层是否可点击\nvoid com.autonavi.gbl.layer.BizControl.setClickable(long bizType, boolean bClickable)\n\n//设置图层的某个图元为焦点\nvoid com.autonavi.gbl.layer.BizControl.setFocus(long bizType, String strID, boolean bFocus)\n\n//控制control中包含的所有图层的显隐\nvoid com.autonavi.gbl.layer.BizControl.setVisible(boolean bVisible)\n\n//控制图层显隐\nvoid com.autonavi.gbl.layer.BizControl.setVisible(long bizType, boolean bVisible)\n\n//更新天气扎标信息\nvoid com.autonavi.gbl.layer.BizGuideRouteControl.updateRouteWeatherInfo(ArrayList<BizRouteWeatherInfo>weatherInfos)\n\n//图元样式JSON串回调接口\nString com.autonavi.gbl.map.layer.observer.IPrepareLayerStyle.getLayerStyle(BaseLayer pLayer,\nLayerItem pItem, boolean forJava)\n \n//图元样式中通过marker 图片文件名获取对应的marker id回调接口\nint com.autonavi.gbl.map.layer.observer.IPrepareLayerStyle.getMarkerId(BaseLayer pLayer,\nLayerItem pItem, String strMarkerId,String strMarkerInfo)\n \n//获取路线图层实例\nBaseLayer com.autonavi.gbl.layer.BizGuideRouteControl.getRouteLayer(@BizRouteType.BizRouteType1 int type)\n\n//获取搜索具体业务图层\nBaseLayer com.autonavi.gbl.layer.BizSearchControl.getSearchLayer(@BizSearchType.BizSearchType1 int eType)\n\n//获取组队图层或者终点图层\nBaseLayer com.autonavi.gbl.layer.BizAGroupControl.getAGroupLayer(@BizAGroupType.BizAGroupType1 int eType)
说明:函数详情,请复制函数名称到在线API搜索
/*< pItems 源自路线服务请求沿途天气数据 */\nfinal ArrayList<BizRouteWeatherInfo> weatherInfos = new ArrayList<>();\nfor (int i = 0; i < pItems.size(); i++) {\n BizRouteWeatherInfo info = new BizRouteWeatherInfo();\n info.weatherLabelInfo = pItems.get(i);\n weatherInfos.add(info);\n}\n/*< 绘制沿途天气扎标标 */\nguideRouteControl.updateRouteWeatherInfo(weatherInfos);
public class MapPrepareLayerStyle implements IPrepareLayerStyle\n{\n ...\n /**\n * @return dice.String8 返回的样式JSON内容字符串,由客户端构造\n * @brief 图元样式JSON串回调接口\n * @param[in] pLayer 图元所在图层\n * @param[in] pItem 需要更新样式的具体图元,通过GetBusinessType返回值判断具体图元\n * @param[in] forJava 参数暂时无用,只是标示当前接口用于支持Java端,传递Stirng而非cJSON*\n * @note thread:main\n */\n @Override\n public String getLayerStyle(final BaseLayer pLayer, LayerItem layerItem, boolean forJava) {\n String strStyleJson = "EMPTY";\n int itemType = layerItem.getItemType();\n int businessType = layerItem.getBusinessType();\n\n switch (itemType) {\n case LayerItemType.LayerItemPointType:\n switch (businessType) {\n case BizRouteType.BizRouteTypeWeather: {\n RouteWeatherLayerItem weatherItem = (RouteWeatherLayerItem) layerItem;\n WeatherLabelItem mWeatherInfo = weatherItem.getMWeatherInfo();\n\n switch (mWeatherInfo.mWeatherType) {\n case WeatherType.WeatherTypeNormal:\n strStyleJson = CommonUtil.getStyleBeanJson("point_route_weather_100");\n break;\n case WeatherType.WeatherTypeBad:\n strStyleJson = CommonUtil.getStyleBeanJson("point_route_weather_102_103");\n break;\n }\n break;\n }\n }\n }\n }\n ...\n}
"marker_info": {\n "path_weather_x_y": {\n "anchor": 9,\n "x_ratio": 0.87,\n "y_ratio": 0.88\n }\n },\n "layer_item_info": {\n ...\n "point_route_weather_100": {\n\t\t\t"point_layer_item_style": {\n\t\t\t\t"normal_style": {\n\t\t\t\t\t"poi_marker_id": "global_image_default_path_weather_100_normal",\n\t\t\t\t\t"poi_marker_info": "path_weather_x_y",\n\t\t\t\t\t"bg_marker_id": "global_image_default_path_weather_leftup_day_night"\n\t\t\t\t},\n\t\t\t\t"focus_style": {\n\t\t\t\t\t"poi_marker_id": "global_image_default_path_weather_100_big_icon_normal",\n\t\t\t\t\t"poi_marker_info": "path_weather_focus_x_y",\n\t\t\t\t\t"bg_marker_id": "global_image_default_path_weather_leftup_big_icon_day_night",\n\t\t\t\t\t"bg_marker_info": "path_weather_focus_bg_x_y"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t"point_route_weather_101_104": {\n\t\t\t"point_layer_item_style": {\n\t\t\t\t"normal_style": {\n\t\t\t\t\t"poi_marker_id": "global_image_default_path_weather_101_104_normal",\n\t\t\t\t\t"poi_marker_info": "path_weather_x_y",\n\t\t\t\t\t"bg_marker_id": "global_image_default_path_weather_leftup_day_night"\n\t\t\t\t},\n\t\t\t\t"focus_style": {\n\t\t\t\t\t"poi_marker_id": "global_image_default_path_weather_101_104_big_icon_normal",\n\t\t\t\t\t"poi_marker_info": "path_weather_focus_x_y",\n\t\t\t\t\t"bg_marker_id": "global_image_default_path_weather_leftup_big_icon_day_night",\n\t\t\t\t\t"bg_marker_info": "path_weather_focus_bg_x_y"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t"point_route_weather_102_103": {\n\t\t\t"point_layer_item_style": {\n\t\t\t\t"normal_style": {\n\t\t\t\t\t"poi_marker_id": "global_image_default_path_weather_102_103_normal",\n\t\t\t\t\t"poi_marker_info": "path_weather_x_y",\n\t\t\t\t\t"bg_marker_id": "global_image_default_path_weather_leftup_day_night"\n\t\t\t\t},\n\t\t\t\t"focus_style": {\n\t\t\t\t\t"poi_marker_id": "global_image_default_path_weather_102_103_big_icon_normal",\n\t\t\t\t\t"poi_marker_info": "path_weather_focus_x_y",\n\t\t\t\t\t"bg_marker_id": "global_image_default_path_weather_leftup_big_icon_day_night",\n\t\t\t\t\t"bg_marker_info": "path_weather_focus_bg_x_y"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n ...\n}