Java android谷歌地图群集,点击后更改标记中的图标
在我的应用程序中,我在谷歌地图中有很多点要显示,所以我决定使用ClusterManager。我想更改一个ClusterItem上的图标(我单击了该图标),我想知道如何做到这一点:Java android谷歌地图群集,点击后更改标记中的图标,java,android,google-maps,Java,Android,Google Maps,在我的应用程序中,我在谷歌地图中有很多点要显示,所以我决定使用ClusterManager。我想更改一个ClusterItem上的图标(我单击了该图标),我想知道如何做到这一点: @Override public void onMapReady(GoogleMap googleMap) { mMap = googleMap; mClusterManager = new ClusterManager<>(this, mMap); final Custom
@Override public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
mClusterManager = new ClusterManager<>(this, mMap);
final CustomClusterRenderer renderer = new CustomClusterRenderer(this, mMap, mClusterManager);
mClusterManager.setRenderer(renderer);
mClusterManager.setOnClusterClickListener(
new ClusterManager.OnClusterClickListener<StringClusterItem>() {
@Override public boolean onClusterClick(Cluster<StringClusterItem> cluster) {
Toast.makeText(MapsActivity.this, "Cluster click", Toast.LENGTH_SHORT).show();
return false;
}
});
mClusterManager.setOnClusterItemClickListener(
new ClusterManager.OnClusterItemClickListener<StringClusterItem>() {
@Override public boolean onClusterItemClick(StringClusterItem clusterItem) {
Toast.makeText(MapsActivity.this, "Cluster item click", Toast.LENGTH_SHORT).show();
return false;
}
});
mClusterManager.setOnClusterItemInfoWindowClickListener(
new ClusterManager.OnClusterItemInfoWindowClickListener<StringClusterItem>() {
@Override public void onClusterItemInfoWindowClick(StringClusterItem stringClusterItem) {
Toast.makeText(MapsActivity.this, "Clicked info window: " + stringClusterItem.title,
Toast.LENGTH_SHORT).show();
}
});
mMap.setOnInfoWindowClickListener(mClusterManager);
mMap.setInfoWindowAdapter(mClusterManager.getMarkerManager());
mMap.setOnCameraChangeListener(mClusterManager);
mMap.setOnMarkerClickListener(mClusterManager);
for (int i = 0; i < 10; i++) {
final LatLng latLng = new LatLng(-34 + i, 151 + i);
mClusterManager.addItem(new StringClusterItem("Marker #" + (i + 1), latLng));
}
mClusterManager.addItem(new StringClusterItem("Marker #" + (10 + 1), new LatLng(-34+11 , 151 +11),true));
mClusterManager.cluster();
}
我这样做:
@Override public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
mClusterManager = new ClusterManager<>(this, mMap);
final CustomClusterRenderer renderer = new CustomClusterRenderer(this, mMap, mClusterManager);
mClusterManager.setRenderer(renderer);
mClusterManager.setOnClusterClickListener(
new ClusterManager.OnClusterClickListener<StringClusterItem>() {
@Override public boolean onClusterClick(Cluster<StringClusterItem> cluster) {
Toast.makeText(MapsActivity.this, "Cluster click", Toast.LENGTH_SHORT).show();
return false;
}
});
mClusterManager.setOnClusterItemClickListener(
new ClusterManager.OnClusterItemClickListener<StringClusterItem>() {
@Override public boolean onClusterItemClick(StringClusterItem clusterItem) {
Toast.makeText(MapsActivity.this, "Cluster item click", Toast.LENGTH_SHORT).show();
return false;
}
});
mClusterManager.setOnClusterItemInfoWindowClickListener(
new ClusterManager.OnClusterItemInfoWindowClickListener<StringClusterItem>() {
@Override public void onClusterItemInfoWindowClick(StringClusterItem stringClusterItem) {
Toast.makeText(MapsActivity.this, "Clicked info window: " + stringClusterItem.title,
Toast.LENGTH_SHORT).show();
}
});
mMap.setOnInfoWindowClickListener(mClusterManager);
mMap.setInfoWindowAdapter(mClusterManager.getMarkerManager());
mMap.setOnCameraChangeListener(mClusterManager);
mMap.setOnMarkerClickListener(mClusterManager);
for (int i = 0; i < 10; i++) {
final LatLng latLng = new LatLng(-34 + i, 151 + i);
mClusterManager.addItem(new StringClusterItem("Marker #" + (i + 1), latLng));
}
mClusterManager.addItem(new StringClusterItem("Marker #" + (10 + 1), new LatLng(-34+11 , 151 +11),true));
mClusterManager.cluster();
}
@在mapready(谷歌地图谷歌地图)上覆盖公共空白{
mMap=谷歌地图;
mClusterManager=newclustermanager(这个,mMap);
最终CustomClusterRenderer渲染器=新的CustomClusterRenderer(此、mMap、McClusterManager);
setRenderer(渲染器);
mClusterManager.setOnClusterClickListener(
新建ClusterManager.OnClusterClickListener(){
@重写公共布尔onClusterClick(群集){
Toast.makeText(MapsActivity.this,“集群单击”,Toast.LENGTH_SHORT.show();
返回false;
}
});
mClusterManager.setOnClusterItemClickListener(
新建ClusterManager.OnClusterItemClickListener(){
@重写公共布尔值onClusterItemClick(StringClusterItem clusterItem){
Toast.makeText(MapsActivity.this,“集群项目单击”,Toast.LENGTH_SHORT.show();
返回false;
}
});
mClusterManager.SetOnClusterItemInfo窗口单击侦听器(
新建ClusterManager.onClusterItemInfo窗口ClickListener(){
@在ClusterItemInFoWindowClick(StringClusterItem StringClusterItem)上重写公共void{
Toast.makeText(MapsActivity.this,“单击信息窗口:”+stringClusterItem.title,
吐司。长度(短)。show();
}
});
mMap.setOnInfoWindowClickListener(mClusterManager);
setInfoWindowAdapter(mClusterManager.getMarkerManager());
mMap.SetonCamerachenglistener(McClusterManager);
mMap.setOnMarkerClickListener(mClusterManager);
对于(int i=0;i<10;i++){
最终车床=新车床(-34+i,151+i);
addItem(新的StringClusterItem(“Marker#“+(i+1),latLng));
}
addItem(新StringClusterItem(“Marker#“+(10+1),新LatLng(-34+11151+11),true));
mClusterManager.cluster();
}
如果您查看他们提到的自定义标记簇
CustomMarkerClusteringDemoActivity定义自己的集群项,即
Person,并通过将DefaultClusterRenderer扩展为
人格呈现者
您还可以以类似的方式实现ClusterManager.OnClusterItemClickListener
他们还提供了更改ClusterItem的图标/图像的功能。如果您查看他们提到的自定义标记群集
CustomMarkerClusteringDemoActivity定义自己的集群项,即
Person,并通过将DefaultClusterRenderer扩展为
人格呈现者
您还可以以类似的方式实现ClusterManager.OnClusterItemClickListener
他们还提供了更改ClusterItem的图标/图像的功能