longClickListsner
グーグルマップv2のマーカーにを設定する方法はありますか?ユーザーにマーカーを長押しさせ、情報を削除または表示するオプションを含むダイアログを表示させたい。これはできますか?
質問する
23449 次
8 に答える
17
もう一つ提案があります。
まず、マーカーをドラッグ可能にします。
mapa.addMarker(new MarkerOptions() ...
.setDraggable(true);
次のようにリスナー setOnMarkerDragListener を作成した後:
mapa.setOnMarkerDragListener(new OnMarkerDragListener() {
@Override
public void onMarkerDragStart(Marker marker) {
// TODO Auto-generated method stub
//Here your code
}
@Override
public void onMarkerDragEnd(Marker marker) {
// TODO Auto-generated method stub
}
@Override
public void onMarkerDrag(Marker marker) {
// TODO Auto-generated method stub
}
});
そして、必要に応じてオーバーライドできます (通常は onMarkerDragStart で長いクリックをシミュレートします)。
それが役に立てば幸い
于 2013-03-15T02:53:52.667 に答える
14
Marker クラスには LongClickListener がありません。このアプローチは完璧とは言えませんが、ここでは何ができるかについてのアイデアを示します。
GoogleMap オブジェクトのロング クリック リスナーを設定します。長いクリックで、クリックした位置がマーカーに十分近いかどうかを確認します。この近さのしきい値を決定するには、マップのズーム レベルを使用できます。
これはあまり良くないサンプルコードです。私はそれを試していませんが、あなたのニーズに合うかもしれません。
map.setOnMapLongClickListener(new OnMapLongClickListener() {
@Override
public void onMapLongClick(LatLng latLng) {
for(Marker marker : yourMarkerList) {
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;
}
}
}
});
于 2013-03-13T17:43:07.573 に答える
3
ARP の回答は問題ありませんが、厄介な問題があります。ドラッグを開始するとマーカーが上に移動し、終了してもマーカーは指で指している位置よりも高い位置にあります。
于 2013-12-07T15:38:40.127 に答える