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) { 
      } 
     }); 
    } 

또는 현재 위치를 가져 오는 다른 방법이 있습니까? 라고 locationchanged 때마다 감사

답변

0

수행 지역

private Marker currentMarker; 

등이

선언 마커 객체를보십시오 :

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

@FrancisVelasco이 방법은 다른 마커를 제거하지 않으려면 더 낫다 . 이렇게하면 위치 표시 자만 제거됩니다. 나는 이것을 사용하고 있으며 훌륭하게 작동합니다. 데스크톱을 사용하는 경우 게시했습니다. –

+0

@FrancisVelasco. .. 나는 같은 방법을 사용하고 있었다. 기쁜 데 도움이되었습니다. –

0

addMarker 메소드에 의해 반환되는 메이커 객체가 다음 마커의 새로운 위치를 설정 marker.setPosition를 사용할 수있는 저장

0

는 새로운 마커가 배치됩니다 어떤 실제로 발생하는 것을 실제로이 마커를 배치하기 전에지도를 지워야합니다.
다음 코드와 같이 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)); }
이렇게하면지도가 지워지고 다른 마커도 제거됩니다.
앱을 통해 답변했습니다. 서식을 지정해 주셔서 나중에 수정하겠습니다. 다음과 같이