没有用户位置的android中的集群标记

Posted

技术标签:

【中文标题】没有用户位置的android中的集群标记【英文标题】:Cluster Marker in android without user location 【发布时间】:2017-07-12 07:59:55 【问题描述】:

我是 android 中聚类标记的新手。我实现了 ClusterItem 并在 ClusterManager 中添加了所有其他标记 [Hotels] 和用户制造商。但问题是,当我不向 ClusterManager 添加用户标记时,它也不会聚集其他制造商。

我想要的是所有其他标记都应该聚集在用户制造商之外。请帮助我如何实现这一目标。

这就是我创建集群管理器的方式

clusterManager = new ClusterManager<ClusterItem>(this, mMap);
    mMap.setOnCameraIdleListener(clusterManager);
    mMap.setOnMarkerClickListener(clusterManager);

我正在像我们一样添加 clusterItem

    clusterManager.addItem(new ClusterItem(hotelsLocation));

【问题讨论】:

【参考方案1】:

但问题是,当我不向 ClusterManager 添加用户标记时,它也不会聚集其他制造商。

你能说得清楚一点吗?如果您想动态添加或删除集群项目,请使用

mClusterManager.addItem(item);
// mClusterManager.removeItem(item);
mClusterManager.cluster();

这里的cluster()方法的意思是,只是添加/删除了一个item,请重新计算clusters。

【讨论】:

即使我删除了用户的clusterItem,蓝点之类的东西也代表了我的位置[默认情况下会出现]。并且集群没有显示任何效果 哦,蓝点,你有没有打算让它成为集群的一部分? 不,我没有任何使用它的意图。我删除了那个蓝点。但仍然面临同样的问题【参考方案2】:

像这样初始化clusterManager:

clusterManager = new ClusterManager<>(getActivity(), googleMap);
clusterManager.setRenderer(new OurClusterRenderer(getActivity(), googleMap, clusterManager));
googleMap.setOnCameraChangeListener(clusterManager);
googleMap.setOnMarkerClickListener(clusterManager);
googleMap.setOnInfoWindowClickListener(clusterManager);
googleMap.setInfoWindowAdapter(clusterManager.getMarkerManager());
googleMap.setOnInfoWindowClickListener(clusterManager);

然后添加您自己的标记(仅限酒店)并调用 .cluster():

clusterManager.clearItems();
for (HotelModel hotelModel : hotelModelNearMeList) 
    if (hotelModel.getPosition() != null) 
        clusterManager.addItem(hotelModel);
    

clusterManager.cluster();

最后,如果要添加用户标记:

MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(new LatLng(location.getLatitude(),location.getLongitude()));
markerOptions.anchor(0.5f, 1);
markerOptions.icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_mylocation));
googleMap.addMarker(markerOptions);

如果您按照此步骤操作,即使您不添加任何 UserMarker,您的聚类也将完成。希望对您有所帮助。

【讨论】:

以上是关于没有用户位置的android中的集群标记的主要内容,如果未能解决你的问题,请参考以下文章

Android:集群标记计数未使用自定义标记正确显示

如何收听Android中的自定义标记位置变化?

如何从 Google Maps android 中的当前位置不断检测附近的标记位置?

如何在android中的谷歌地图上绘制路线并计算多个标记之间的距离

如何在 Android Google Map API 中管理不在集群中的标记?

是否需要安装 Android Studio 才能在 vscode 中使用模拟器?