{"version":"0.1.0","code":"0000","result":true,"message":"处理成功","errdetail":"","timestamp":1671516365937,"data":{"id":71713858,"title":"6.3.4.3多象限点图元","slug":"mn3r8q","format":"lake","bookId":26046811,"body":null,"body_draft":null,"body_html":"

基本介绍

多象限点图元(QuadrantLayerItem)是继承于点图元的、用于实现多象限碰撞功能的图元。多象限点图元是指创建若干个多象限点图元,这些图元的对象不同、飘向不同,但是内容是相同的。

一个包含若干个多象限点图元的图层,通常都会和其它图层有压盖面积的碰撞关系,通过与其它图层图元计算压盖面积,然后取得一个压盖面积最小(最优)的象限显示出来。启用多象限点图元的碰撞计算需要调用BaseLayer的enableAreaCollision,或者把这个图层放在图层间的碰撞中,这样多象限图元才能只显示一个出来。

比如多备选标签,它有四个象限,和路线、屏幕外、拥堵气泡等有碰撞关系,在碰撞计算完成后,图层内部会调用BaseLayer的updateQuadrantItems函数,从中选一个最优的象限显示出来。

场景图

\"image.png\"

类图

\"image.png\"

核心参数

\n/** @brief 象限类型,包含所有可能类型,由业务选择需要的象限类型*/\nenum QuadrantType\n{\n    QuadrantTypeNone,        /**< 默认值 */\n    QuadrantTypeLeft,        /**< 左象限 */\n    QuadrantTypeRight,       /**< 右象限 */\n    QuadrantTypeUp,          /**< 上象限 */\n    QuadrantTypeDown,        /**< 下象限 */\n    QuadrantTypeRightUp,     /**< 右上象限 */\n    QuadrantTypeLeftUp,      /**< 左上象限 */\n    QuadrantTypeLeftDown,    /**< 左下象限 */\n    QuadrantTypeRightDown,   /**< 右下象限 */\n};\n

核心接口

com.autonavi.gbl.map.layer.impl.QuadrantLayerItem.QuadrantLayerItem(@QuadrantType.QuadrantType1 int quadrantType, long quadrantGroupId)\n\n//在包含多象限图层中,根据图元的多象限压盖面积,更新象限的显隐, 保证有一个象限item显示,其它象限item隐藏。(所有item设置为空闲态)\nvoid com.autonavi.gbl.map.layer.BaseLayer.updateQuadrantItems()\t\n\n//在组合(多象限)碰撞中,设置碰撞是否计算图元压盖面积\nvoid com.autonavi.gbl.map.CollisionGroup.enableAreaCollision\t(\tboolean \tareaCollision\t)\t\n

其它

多象限点图元主要应用在业务图层间碰撞,具体查看这里

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