{"version":"0.1.0","code":"0000","result":true,"message":"处理成功","errdetail":"","timestamp":1671516362810,"data":{"id":71712571,"title":"6.3.3.8栅格大图图元","slug":"gpg0k7","format":"lake","bookId":26046811,"body":null,"body_draft":null,"body_html":"

场景图

\"image.png\"

栅格图元(RasterImageLayerItem)是将纹理绘制到屏幕指定区域的一种LayerItem,目前在业务图层的应用场景为栅格路口大图图层

Item必须通过AddItem的方式依附在BaseLayer上


时序图


关键参数

字段

含义

com.autonavi.gbl.map.layer.BaseLayer

基础图层,item必须附加在Layer上

com.autonavi.gbl.map.layer.RasterImageLayerItem

栅格图元

com.autonavi.gbl.map.layer.model.LayerItemType.LayerItemRasterImageType

图元类型:栅格图


核心接口

/* 回调获取栅格图元json串 */\nString com.autonavi.gbl.map.layer.observer.IPrepareLayerStyle.getLayerStyle(BaseLayer pLayer, LayerItem pItem, boolean forJava)\n\n/* 回调获取纹理id */\nint com.autonavi.gbl.map.layer.observer.IPrepareLayerStyle.getMarkerId(BaseLayer pLayer, LayerItem pItem, String strMarkerId, String strMarkerInfo)\n\n/* 加载纹理 */\nboolean com.autonavi.gbl.map.MapView.addLayerTexture(LayerTexture texture)\n\n/* 更新样式 */\nvoid com.autonavi.gbl.map.layer.RasterImageLayerItem.updateStyle()\n\n/* 设置栅格图图片数据 */\nboolean com.autonavi.gbl.map.layer.RasterImageLayerItem.setRasterImageData(LayerTexture arrowImge, LayerTexture roadImage)

说明:函数详情,请复制函数名称到在线API搜索


调用示例

...\n/*< 创建RasterImageLayerItem并添加到图层 */\nBaseLayer pLayer = new BaseLayer("layerName", mapView);   // 创建BaseLayer\npLayer.setStyle(prepareLayerStyle);     // 设置样式回调\nmapView.getLayerMgr.addLayer(pLayer);   // 将图层添加到管理器中\nRasterImageLayerItem pItem = new RasterImageLayerItem();  // 创建RasterImageLayerItem\npLayer.setBusinessType(BizRoadCrossTypeRasterImage);      // 设置业务类型\npItem.setRasterImageData(arrowImage, roadImage);          // 设置栅格图数据\npLayer.addItem(pItem);                  // 添加item到layer中\n\n/* 回调获取栅格图元json,回调获取markerID */\npublic class MapPrepareLayerStyle implements IPrepareLayerStyle {\n\t...\n\t@Override\n    public String getLayerStyle(final BaseLayer pLayer, LayerItem layerItem, boolean b) {\n\t\tString strStyleJson = "";\n\t\tint itemType = layerItem.getItemType();\n        int businessType = layerItem.getBusinessType();\n\t\tswitch (itemType) {\n\t\t\tcase LayerItemType.LayerItemRasterImageType:\n                ... // 按需对businessType进行判断,获取指定的json串\n\t\t\t\tstrStyleJson = getStyleBeanJson("rasterImage_style");\n\t\t\t\tbreak;\n\t\t\tcase LayerItemType.xxx:\n\t\t\t\tbreak;\n\t\t}\n\t\treturn strStyleJson;\n\t}\t\n\t...\t\n\t@Override\n    public int getMarkerId(BaseLayer pLayer, LayerItem pItem, String strMarkerId, String strMarkerInfo) {\n        int markerId = -1;\n        strMarkerId = strMarkerId.trim();\n        if (strMarkerId.isEmpty()) {\n            return markerId;\n        }   \n        ...\n        int itemType = layerItem.getItemType();\n        int businessType = layerItem.getBusinessType();\n\t\t\n\t\tswitch (itemType) {\n\t\t\tcase LayerItemType.LayerItemRasterImageType:\n                ... // 按需对businessType进行判断\n                //判断纹理信息,若未加载则通过addLayerTexture加载纹理\n\t\t\t\tmarkerId = addLayerTexture(texture);\n\t\t\t\tbreak;\n\t\t\tcase LayerItemType.xxx:\n\t\t\t\tmarkerId = -1;\n                break;\n\t\t}\n\t\treturn markerId;\n\t}\t\n}

JSON配置

json全量配置(各字段说明)

{\n    "raster_image_layer_item_style":{\n        "priority":0,          \t//栅格图元优先级\n        "winx":0,              \t//栅格图在屏幕上的位置,左上角x值,屏幕坐标系\n        "winy":0,              \t//栅格图在屏幕上的位置,左上角y值,屏幕坐标系\n        "width":256,           \t//栅格图显示区域宽度\n        "height":256,          \t//栅格图显示区域高度\n        "bg_marker_id":"bg",   \t//背景纹理\n        "bg_marker_info":"",   \t//背景纹理属性描述,一般用于描述纹理加载要用的信息(如锚点相关)\n        "marker_id":"marker",  \t//纹理\n        "marker_info":"",      \t//纹理属性描述,一般用于描述纹理加载要用的信息(如锚点相关)\n      \t"plane_lut_attr":{\t\t\t\t\t\t\t//栅格图色表信息\n            "draw_mode":1,              //1:箭头偏移描边,箭头固定为白色,描边固定为蓝色;2:箭头换色,无箭头描边\n            "arrow_marker_id":0,\t\t\t\t//栅格图箭头纹理,来源于原setRasterImageData输入的arrowImage\n            "arrow_marker_info" : "",\t\t//栅格图箭头纹理属性描述,一般用于描述纹理加载要用的信息(如锚点相关),可不设\n            "route_marker_id" : 256,\t\t//栅格图路面纹理,来源于原setRasterImageData输入的roadImage\n            "route_marker_info" : "",\t\t//栅格图路面纹理属性描述,一般用于描述纹理加载要用的信息(如锚点相关),可不设\n            "lut_marker_id" : 256,\t\t\t//栅格图色表纹理\n            "lut_marker_info" : "",\t\t\t//栅格图色表纹理属性描述,一般用于描述纹理加载要用的信息(如锚点相关),可不设\n            "arrow_color" : 0,\t\t\t\t\t//栅格图箭头颜色,LUT模式暂时不支持改色,即当前该字段未启用\n            "arrow_out_line_Color" : "0xaa009bdc",\t//栅格图箭头描边颜色\n            "arrow_offset" : 0.02,\t\t\t//栅格图箭头偏移比例\n            "lut_attr" :{\t\t\t\t\t\t\t\t//栅格图色表图片参数\n                "colors" : 16,\t\t\t\t\t//栅格图色表图片相关,颜色数\n                "max_colors" : 15,\t\t\t//栅格图色表图片相关,最大颜色数\n                "image_width" : 256,\t\t//栅格图色表图片相关,色表图片宽度\n                "image_height" : 16\t\t\t//栅格图色表图片相关,色表图片高度\n            },\n            "fall_offset" : 0.3,\t\t\t\t\t\t//偏移基准位置\n            "sky_fog_color" : "0xff009bdc"\t//雾色\n        }\n    }\n}

示例

    "raster_image_style":{\n        "raster_image_layer_item_style":{\n            "priority":0,\n            "winx":24,\n            "winy":224,\n            "width":464,\n            "height":352,\n            "bg_marker_id":"global_image_cross_background_day_night",\n            "marker_id":50000\n        }\n    }

"winx"、"winx"的内容为栅格图的屏幕坐标,左上角

"width"、"height"的内容为栅格图的在屏幕显示区域的宽高

"bg_marker_id"、"bg_marker_info"为栅格图背景图纹理及纹理信息

"marker_id"、"marker_id"为栅格图纹理及纹理信息


注意事项

1、图元类型

RasterImageLayerItem的ItemType为LayerItemRasterImageType(图元类型:栅格图)

2、栅格图setRasterImageData输入要求

setRasterImageData传入的LayerTexture.anchorType需要为LayerIconAnchorLeftTop(锚点:左上角),不然会出现绘制偏移

3、栅格图图元的应用

可用于面板图层的绘制,不触发setRasterImageData接口,则会绘制marker_id和bg_marker_id的内容

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