群集标记由用户在Android中的当前位置图标覆盖

时间:2017-03-08 08:14:22

标签: android google-maps google-maps-android-api-2 markerclusterer

我正在使用内部实现了群集标记的谷歌地图。但是,我的标记已被用户的当前位置图标覆盖,如enter image description here下面的图片

这是我的代码:

 protected void onBeforeClusterRendered(Cluster<CurationLocation> cluster, MarkerOptions markerOptions) {
        if (isAdded()) {
            final Drawable clusterIcon = getResources().getDrawable(R.drawable.oval_bg);
            mClusterIconGenerator.setBackground(clusterIcon);
            mClusterIconGenerator.setTextAppearance(R.style.AppTheme_WhiteTextAppearance);

            LayoutInflater myInflater = (LayoutInflater) mActivity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            View clusterView = myInflater.inflate(R.layout.customize_cluster_layout, null, false);
            mClusterIconGenerator.setContentView(clusterView);

            final Bitmap icon = mClusterIconGenerator.makeIcon(String.valueOf(cluster.getSize()));
            markerOptions.icon(BitmapDescriptorFactory.fromBitmap(icon));
        } else {
            return;
        }
    }

这是XML部分:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:layout_centerInParent="true"
android:layout_centerVertical="true"
android:orientation="vertical"
android:weightSum="1">

<TextView
    android:id="@+id/text"
    android:layout_width="30dp"
    android:layout_height="40dp"
    android:background="@drawable/icon_location_clustering"
    android:gravity="center_horizontal"
    android:paddingTop="5dp"
    android:text="33"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="#000000"
    android:textSize="13sp" />

我希望我的标记应覆盖用户的当前位置图标。有人能帮助我吗?

2 个答案:

答案 0 :(得分:4)

根据用户的标记,我假设您使用

mGoogleMap.setMyLocationEnbladed(true)

方法

根据您的结果,我认为googleMap会在群集标记之后绘制myLocation标记。

也许解决办法是为myLocation绘制你的个人标记,因此,不要使用setMyLocationEnabled()方法,而应使用onLocationChanged方法自己的标记。

我认为做你想做的事真的很难。正如我所说,GoogleMap比以前更有吸引力。即使您在群集之前绘制myLocation标记,下一个mylocation也将位于您的群集上,因此您需要重新绘制群集。

另一种方法可能是用alpha(或透明度)绘制标记。

最后,为什么要在用户位于群集下方时隐藏用户的位置?

答案 1 :(得分:1)

另一种方法是在onDraw上的gmaps上绘制图层,这样你也可以在绘制定位销之前绘制位置标记。我很确定我在2013年做过类似的事情。抱歉没有任何代码,但它不应该很难。