我正在使用内部实现了群集标记的谷歌地图。但是,我的标记已被用户的当前位置图标覆盖,如下面的图片
这是我的代码:
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" />
我希望我的标记应覆盖用户的当前位置图标。有人能帮助我吗?
答案 0 :(得分:4)
根据用户的标记,我假设您使用
mGoogleMap.setMyLocationEnbladed(true)
方法
根据您的结果,我认为googleMap会在群集标记之后绘制myLocation标记。
也许解决办法是为myLocation绘制你的个人标记,因此,不要使用setMyLocationEnabled()方法,而应使用onLocationChanged方法自己的标记。
我认为做你想做的事真的很难。正如我所说,GoogleMap比以前更有吸引力。即使您在群集之前绘制myLocation标记,下一个mylocation也将位于您的群集上,因此您需要重新绘制群集。
另一种方法可能是用alpha(或透明度)绘制标记。
最后,为什么要在用户位于群集下方时隐藏用户的位置?
答案 1 :(得分:1)
另一种方法是在onDraw上的gmaps上绘制图层,这样你也可以在绘制定位销之前绘制位置标记。我很确定我在2013年做过类似的事情。抱歉没有任何代码,但它不应该很难。