ここで言及しているトピックを参照してください - Setting a LongClickListener on a map Marker私は同じ問題を抱えており、これを正しく達成する方法を見つけることができません。マーカOnLongClickListener on map
最初に、私はすべてのマーカーを置くArraylistを作成します。
markerArrayList = new ArrayList<Marker>();
marker1 = mMap.addMarker(new MarkerOptions()
.position(new LatLng(51.1117744, 17.0353596))
.title("Giselle French Bakery Cafe")
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE)));
marker1.setDraggable(false);
marker1.setTag(0);
marker2 = mMap.addMarker(new MarkerOptions()
.position(new LatLng(51.110969, 17.031510))
.title("Second Bakery Cafe")
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE)));
marker2.setDraggable(false);
marker2.setTag(1);
markerArrayList.add(marker1);
markerArrayList.add(marker2);
次の私はここのように地図上にLongClickListenerを使用し、クリックされた1つのチェックしてみています、
mMap.setOnMapLongClickListener(new GoogleMap.OnMapLongClickListener() {
@Override
public void onMapLongClick(LatLng latLng) {
for (Marker marker : markerArrayList) {
if (Math.abs(marker.getPosition().latitude - latLng.latitude) < 0.005
&& Math.abs(marker.getPosition().longitude - latLng.longitude) < 0.005) {
onMarkerLongClick(marker);
break;
}
}
}
});
が、問題は関係なく、私は地図上の長いクリックを使用するところということであり、それは常にarraylitから行の最初のものを選ぶ。
この問題を解決する方法を知っている人はいますか?
動作するはずのコードの断片です。それはまだ行の最初のマーカーを取った:( – deisy