{"version":"0.1.0","code":"0000","result":true,"message":"处理成功","errdetail":"","timestamp":1671516353575,"data":{"id":71712531,"title":"6.3.2.1图层优先级","slug":"mzt3at","format":"lake","bookId":26046811,"body":null,"body_draft":null,"body_html":"

基本介绍

图层和图元都有优先级概念,通过优先级来设置两两之间的压盖碰撞关系。

在图层中创建图元时,根据图层业务逻辑设置优先级,指定各图元的压盖关系;如果图层开启了碰撞逻辑,则根据图元优先级来确定碰撞关系,优先级高的图元碰撞掉优先级低的图元。


每个图层定义了默认的优先级,优先级包括:引擎层级优先级(定义图层绘制与其它元素绘制关系),以及图层之间的子优先级。

场景图

\"image.png\"

关键参数

com.autonavi.gbl.map.layer.model.LayerPriority,设置图层与底图元素,图层之间的压盖关系

参数

类型

含义

配置项key名

drawlayerPrio

LayerDrawPriority

图层与底图间优先级,值越大优先级越高

"draw_priority"

priority

int

图层间优先级,值越大优先级越高

"sub_priority"

com.autonavi.gbl.map.layer.model.LayerDrawPriority,设置图层与底图元素之间的压盖关系

变量名

含义

LayerDrawPriorityBeforeBackGround

背景绘制之前

0

LayerDrawPriorityAfterBackGround

背景绘制之后

10

LayerDrawPriorityBeforeRoad

road绘制之前

20

LayerDrawPriorityAfterRoad

road绘制之后

40

LayerDrawPriorityBeforeBuilding

building绘制之前

60

LayerDrawPriorityAfterBuilding

building绘制之后

80

LayerDrawPriorityBeforeLabel

label绘制之前

100

LayerDrawPriorityAfterLabel

label绘制之后

120

LayerDrawPriorityRenderMapOver

绘制地图之后

140

LayerDrawPriorityTop

地图overlay的最上层

1000

LayerDrawPriorityWidget

控件overlay

0xFFFF

核心接口

//设置图层绘制层级以及显示优先级\nvoid com.autonavi.gbl.map.layer.BaseLayer.setPriority(LayerPriority priority)\n//获取图层绘制层级以及显示优先级\nLayerPriority com.autonavi.gbl.map.layer.BaseLayer.getPriority()

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

调用示例

BaseLayer mPointLayer = new BaseLayer("PointLayer", mapView);\nmPointLayer.setStyle(MapPrepareLayerStyle.getInstance());\nmapView.getLayerMgr().addLayer(mPointLayer);\nmPointLayer.setDisplayScale(new LayerScale(3.0f, 19.0f));\nmPointLayer.setPriority(new LayerPriority(LayerDrawPriority.LayerDrawPriorityAfterLabel, 3300)); //设置图层优先级\n\nPointLayerItem pointLayerItem = new PointLayerItem();\npointLayerItem.setID("id1");\nCoord3DDouble pos = new Coord3DDouble(116.397513, 39.908657, 0);\npointLayerItem.setPosition3D(pos);\npointLayerItem.setPriority(1); //设置图元优先级\npointLayerItem.setBusinessType(0x11110);\npointLayerItem.setVisible(true);\nmPointLayer.addItem(pointLayerItem);

注意事项

1,如果没有指定优先级,图层图元的默认优先级是越后面添加优先级越高,也就是说越后面添加的图层图元会压盖前面添加的;


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