2017-08-18 13 views
0

長いクリックでマーカーを削除し、マップ全体を消去せずに別の場所に配置したいと考えています。AndroidのGoogleマップ - アイコン付きマーカーを削除する

今すぐ円の半径は正常に機能しますが、カスタムピンのアイコンは削除されません。 GoogleMap.clear()メソッドを使用する は使用しないでください。マップには、リフレッシュしたくないオブジェクトがいくつかあります。 私はsetPositionメソッドも試してみましたが、同じ結果が出ました。 このアイコンの消去方法は?

マーカー宣言:

marker = googleMap.addMarker(new MarkerOptions().position(marker.getPosition()).draggable(true).title("INFO") 
        .infoWindowAnchor(0.5f,0.5f).visible(false) 
        .icon(BitmapDescriptorFactory.fromBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.pin_icon)))); 


this.googleMap.setOnMapLongClickListener(new GoogleMap.OnMapLongClickListener() { 
      @Override 
      public void onMapLongClick(LatLng latLng) { 
       if (marker != null) { 
        marker.remove(); 
       } 

       createMarker(latLng); 

      } 
     }); 


private void createMarker(LatLng latLng) { 
     marker = googleMap.addMarker(new MarkerOptions().position(latLng).draggable(true).title("INFO") 
       .infoWindowAnchor(0.5f,0.5f) 
       .icon(BitmapDescriptorFactory.fromBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.ic_pin_gr)))); 

    } 
+0

ここで、このマーカーを追加します –

答えて

0

Iは、マーカーを作成し、単にsetPosition(new Latlng(...))操作するためのそのようなアプローチを使用します。

marker = mGoogleMap.addMarker(new MarkerOptions() 
        .anchor(0.5f, 0.5f) 
        .icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_pin)) 
        .position(new LatLng(cab.getLatitude(), cab.getLongitude()))); 

あなたはonLongClick()メソッド内setPosition()marker.remove();を交換しようとしましたか?

+0

こんにちはマイケル、はい、私はそれをsetPositionに置き換えましたが、アイコンはまだ消えません。 – Simon

関連する問題