android 如何在普通标记和集群标记之间创建单独的标记点击监听器
How to make separate marker click listener between normal marker and cluster marker in android
我有一些普通的标记和簇标记。 googleMap.setOnMarkerClickListener(mClusterManager) 监听器覆盖到普通标记监听器和普通标记点击不起作用。所以,我想分别处理两个标记点击。
ClusterManager
对此有单独的方法:
setOnClusterItemClickListener
处理Marker
点击
setOnClusterClickListener
处理Cluster
点击
Marker
和Cluster
都是地图上的标记。您指定 ClusterManager
将通过 googleMap.setOnMarkerClickListener(mClusterManager)
.
管理标记点击
现在您需要为 ClusterManager
设置 setOnClusterItemClickListener
和 setOnClusterClickListener
示例
googleMap.setOnMarkerClickListener(mClusterManager)
mClusterManager.setOnClusterClickListener(new ClusterManager.OnClusterClickListener<ClusterItemClass>(){
@Override
public boolean onClusterClick(Cluster<ClusterItemClass> cluster) {
//logic for handle on cluster click
}
});
mClusterManager.OnClusterItemClickListener(new ClusterManager.OnClusterItemClickListener<ClusterItemClass>(){
@Override
public boolean onClusterItemClick(ClusterItemClass item) {
//logic for handle on cluster item click
}
});
中查看更多
我从
得到了解决方案
普通标记
googleMap.setOnMarkerClickListener(mClusterManager.getMarkerManager());
MarkerManager.Collection normalMarkersCollection = mClusterManager.getMarkerManager().newCollection();
创建普通标记
MarkerOptions markerOptions = MarkerOptions()
.position(new LatLng(...))
.title("Title")
.snippet("Description")
将普通标记添加到 "normalMarkersCollection"
normalMarkersCollection.addMarker(markerOptions)
设置点击为普通标记。
normalMarkersCollection.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener {
public boolean onMarkerClick(marker: Marker) {
// NORMAL MARKER CLICKED!
return false;
}
});
对于集群标记
mClusterManager.setOnClusterClickListener(new ClusterManager.OnClusterClickListener<ClusterItemClass>(){
@Override
public boolean onClusterClick(Cluster<ClusterItemClass> cluster) {
//logic for handle on cluster click
}
});
mClusterManager.OnClusterItemClickListener(new ClusterManager.OnClusterItemClickListener<ClusterItemClass>(){
@Override
public boolean onClusterItemClick(ClusterItemClass item) {
//logic for handle on cluster item click
}
});
我有一些普通的标记和簇标记。 googleMap.setOnMarkerClickListener(mClusterManager) 监听器覆盖到普通标记监听器和普通标记点击不起作用。所以,我想分别处理两个标记点击。
ClusterManager
对此有单独的方法:
setOnClusterItemClickListener
处理Marker
点击
setOnClusterClickListener
处理Cluster
点击
Marker
和Cluster
都是地图上的标记。您指定 ClusterManager
将通过 googleMap.setOnMarkerClickListener(mClusterManager)
.
现在您需要为 ClusterManager
setOnClusterItemClickListener
和 setOnClusterClickListener
示例
googleMap.setOnMarkerClickListener(mClusterManager)
mClusterManager.setOnClusterClickListener(new ClusterManager.OnClusterClickListener<ClusterItemClass>(){
@Override
public boolean onClusterClick(Cluster<ClusterItemClass> cluster) {
//logic for handle on cluster click
}
});
mClusterManager.OnClusterItemClickListener(new ClusterManager.OnClusterItemClickListener<ClusterItemClass>(){
@Override
public boolean onClusterItemClick(ClusterItemClass item) {
//logic for handle on cluster item click
}
});
中查看更多
我从
普通标记
googleMap.setOnMarkerClickListener(mClusterManager.getMarkerManager());
MarkerManager.Collection normalMarkersCollection = mClusterManager.getMarkerManager().newCollection();
创建普通标记
MarkerOptions markerOptions = MarkerOptions() .position(new LatLng(...)) .title("Title") .snippet("Description")
将普通标记添加到 "normalMarkersCollection"
normalMarkersCollection.addMarker(markerOptions)
设置点击为普通标记。
normalMarkersCollection.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener { public boolean onMarkerClick(marker: Marker) { // NORMAL MARKER CLICKED! return false; } });
对于集群标记
mClusterManager.setOnClusterClickListener(new ClusterManager.OnClusterClickListener<ClusterItemClass>(){
@Override
public boolean onClusterClick(Cluster<ClusterItemClass> cluster) {
//logic for handle on cluster click
}
});
mClusterManager.OnClusterItemClickListener(new ClusterManager.OnClusterItemClickListener<ClusterItemClass>(){
@Override
public boolean onClusterItemClick(ClusterItemClass item) {
//logic for handle on cluster item click
}
});