簡體   English   中英

使用谷歌地圖工具從 url 渲染集群圖標

[英]Render cluster icon from url using google maps utils

我為每個集群項目使用動態圖標,所以我有特殊的圖標 url 和從 url 加載標記圖標。 我使用以下代碼:

override fun onBeforeClusterItemRendered(item: T, markerOptions: MarkerOptions?) {

    super.onBeforeClusterItemRendered(item, markerOptions)
try {
    var url = URL("https://cdn3.iconfinder.com/data/icons/places/100/map_pin_big_1-128.png")
    Glide.with(context)
        .asBitmap()
        .load(url)
        .into(object : CustomTarget<Bitmap>() {
            override fun onLoadCleared(placeholder: Drawable?) {
            }

            override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) {
                markerOptions?.icon(BitmapDescriptorFactory.fromBitmap(resource))
            }

        })

} catch (ex: Exception) {
    Log.e("map", ex.toString())
}

}

在我的情況下,某些圖標仍然默認,放大后有時會更改縮小圖標。 問題是此代碼不適用於每個集群項,縮放更改的集群圖標也更改后,它可能會呈現我的自定義圖標並可能使用默認值。

在此處輸入圖片說明

在此處輸入圖片說明

你只需要把所有這些東西放進去

protected void onClusterItemRendered(T clusterItem, Marker marker) {
...
}

在 onBeforeClusterItemRendered 中,您在異步回調中的 MarkerOptions 上設置圖標。 這時候就可以添加到地圖上,成為真正的Marker了。 所以你的圖標將被設置為已經無用的對象。

這就是為什么您需要在 onClusterItemRendered 中執行此操作

改變的唯一區別:

markerOptions?.icon(BitmapDescriptorFactory.fromBitmap(resource))

到:

marker.setIcon(BitmapDescriptorFactory.fromBitmap(resource))

參考: Android 版 Google Maps v2 中的刷新制造商 (ClusterItems)

感謝https://stackoverflow.com/users/3252320/stas-parshin

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM