我想为聚簇标记和非聚簇标记添加标记点击事件。通过将集群管理器传递到标记单击事件,集群标记正在工作。但是,通过这样做,它会覆盖非聚集标记的标记点击事件,反之亦然。我有聚集标记的图像和非聚集标记的常规地图图钉标记。
我希望能够在标记点击上删除非聚集标记。我已经尝试了一个远程点击事件,例如:
@Override
public void onMapLongClick(LatLng latLng) {
for (Marker marker : listOfGeoTagMarkers) {
/* if(Math.abs(marker.getPosition().latitude - latLng.latitude) < 0.05 && Math.abs(marker.getPosition().longitude - latLng.longitude) < 0.05) {
Toast.makeText(MapActivity.this, "got clicked", Toast.LENGTH_SHORT).show(); //do some stuff
break;
}*/
double distance = SphericalUtil.computeDistanceBetween(
marker.getPosition(), latLng);
if ( distance < 300 ) { // closer than 50 meters?
Toast.makeText(MapsActivity.this, "got clicked", Toast.LENGTH_SHORT).show();
}
}
然而,距离乘数(这里是300但它可能是50或100等)在某些缩放级别与引脚过于优柔寡断。如果您完全放大并且可以准确地触摸标记,则距离很好。
然而,当你缩小距离时,不可行的增加或减少太大而无法准确地完成所需的操作。简单的toast事件就是我要把标记的删除代码放在哪里。
感谢任何帮助。