腾讯地图、高德地图去除logo方法

前言

之前项目需要整合定位组件,于是将高德和腾讯都统一整理了一下,其中不可避免的需要将logo隐藏。但是地图api并没有提供隐藏logo的方法,只有设置logo的margin的方法。

腾讯地图

遍历图层找到logo隐藏即可。

class TextureTMapView: MapView {
    constructor(context: Context) : super(context)
    constructor(context: Context, options: TencentMapOptions?) : super(context, options)
    constructor(context: Context, attrs: AttributeSet?) : super(context, attrs)
    constructor(
        context: Context,
        attrs: AttributeSet?,
        options: TencentMapOptions?
    ) : super(context, attrs, options)

    constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(
        context,
        attrs,
        defStyleAttr
    )

    constructor(
        context: Context,
        attrs: AttributeSet?,
        defStyleAttr: Int,
        options: TencentMapOptions?
    ) : super(context, attrs, defStyleAttr, options)


    init {
        this.viewTreeObserver.addOnGlobalLayoutListener(object : ViewTreeObserver.OnGlobalLayoutListener {
            override fun onGlobalLayout() {
                //隐藏腾讯地图logo
                getChildAt(1)?.visibility = GONE
                viewTreeObserver.removeOnGlobalLayoutListener(this)
            }
        })
    }
}

高德地图

高德地图也可以用腾讯地图那样,移除图层,但是我看了几个博客,他们提供的getChildAt的index并不一致,我也没去尝试,不过应该找对了index也是可以隐藏的。或者有的人判断子view是imageview直接隐藏。

在地图初始化之后,将logo移出地图之外

init {
	//隐藏logo,传入负值可以移出地图外
    mapView?.map?.uiSettings?.setLogoBottomMargin(ExtendUtil.dip2px(context, -100f))
}

后序

替换地图sdk的工作量还可以,两个地图api很相近,只有个别有差异,完美替换不是难题。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KIDD-4869

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值