0

私は以下のコードを使用してデバイスの現在地を確認しています。場所を変更または更新するたびに、最後のマーカーを削除せずにマーカーを追加します。前のマーカーを削除するにはどうすればいいですか?私の場所が変更されたときに別のマーカーが追加されますが、前のマーカーは削除されません

if(locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)){ 
     locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, new LocationListener() { 
      @Override 
      public void onLocationChanged(Location location) { 
       double latitude = location.getLatitude(); 
       double longtitude = location.getLongitude(); 
       LatLng latLng = new LatLng(latitude, longtitude); 
       mMap.addMarker(new MarkerOptions().position(latLng).title("You Are Here")); 
       mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 10.2f)); 
      } 

      @Override 
      public void onStatusChanged(String s, int i, Bundle bundle) { 
      } 

      @Override 
      public void onProviderEnabled(String s) { 
      } 

      @Override 
      public void onProviderDisabled(String s) { 
      } 
     }); 
    } 

現在地を取得する別の方法はありますか?おかげ

答えて

0

は、次のように行いますローカル

private Marker currentMarker; 

としてこの

宣言マーカーオブジェクトを試してみてください。この方法@FrancisVelasco

if(locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)){ 
     locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, new LocationListener() { 
@Override 
public void onLocationChanged(Location location) { 
     if(currentMarker!=null){ 
     currentMarker.remove(); 
     } 
     double latitude = location.getLatitude(); 
     double longtitude = location.getLongitude(); 
     LatLng latLng = new LatLng(latitude, longtitude); 
     currentMarker=mMap.addMarker(new MarkerOptions().position(latLng).title("You Are Here")); 
     mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 10.2f)); 
     } 

@Override 
public void onStatusChanged(String s, int i, Bundle bundle) { 
     } 

@Override 
public void onProviderEnabled(String s) { 
     } 

@Override 
public void onProviderDisabled(String s) { 
     } 
     }); 
     } 
+0

は、あなたが他のマーカーを削除したくない場合は、より良いです。これにより、ロケーションマーカーのみが削除されます。私はこれを使用しており、それは素晴らしい作品です。私はデスクトップを使用している場合、これを投稿していたでしょう。 –

+0

@FrancisVelasco。私は同じ方法を使っていた。それが助けてくれてうれしい。 –

0

保存addMarkerメソッドによって返されたメーカーオブジェクトは、その後、あなたが実際に起こる

0

何マーカーの新しい位置を設定するためにmarker.setPositionを使用することができますlocationchangedが呼ばれるたびに、新しいマーカーが配置されていることです実際にこのマーカーを配置する前に地図を消去する必要があります。
次のコードのように、mMap.clear();を使用する必要があります。
public void onLocationChanged(Location location) { mMap.clear(); double latitude = location.getLatitude(); double longtitude = location.getLongitude(); LatLng latLng = new LatLng(latitude, longtitude); mMap.addMarker(new MarkerOptions().position(latLng).title("You Are Here")); mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 10.2f)); }
この方法では、地図が消去され、他のマーカーも削除されます。
アプリで回答しました。申し訳ありませんが、フォーマットは後で編集されます。

関連する問題