2016-07-04 172 views
2

我在地圖上有一個標記,我需要更改標記的位置。如何更改位置上的標記位置變化android

這裏是我的代碼:

public void onLocationChanged(Location location) { 

    map.clear(); 
    LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude()); 
    if (Home_Activity.this.markerob != null) { 
     Home_Activity.this.markerob.remove(); 
     markerob.setPosition(latLng); 
    } 
    latitude=location.getLatitude(); 
    longitude=location.getLongitude(); 
    CameraUpdate cameraUpdate =CameraUpdateFactory.newCameraPosition(new CameraPosition.Builder().target(new LatLng(location.getLatitude(), location.getLongitude())).zoom(18.0f).build()); 

    MarkerOptions options = new MarkerOptions().position(latLng); 
    //options.title(getAddressFromLatLng(latLng)); 

    options.icon(BitmapDescriptorFactory.fromBitmap(Bitmap.createScaledBitmap(
      BitmapFactory.decodeResource(getResources(), 
        spmain.getavatarimage()), 90, 90, false))); 

    //map.addMarker(new MarkerOptions().position(latLng)); 
    Toast.makeText(getApplicationContext(), "lat="+latLng,Toast.LENGTH_SHORT).show(); 

    options.position(latLng); 
    map.getUiSettings().setRotateGesturesEnabled(true); 
    map.animateCamera(cameraUpdate); 
    map.moveCamera(cameraUpdate); 
    map.addMarker(options); 


    //locationManager.removeUpdates(this); 
} 

我已經加入onLocationChanged方法,並在,我越來越位置的詳細信息,但不能移動標記上的新位置。

+0

你是否在位置變化時獲得更新的經緯度? –

回答

3

檢查您的地圖是否添加了標記(第一次)。如果不是,則添加標記並保留對該標記的引用。對於後續的onLocationChanged調用,只需使用相同的參考來更新緯度和經度。

Marker myMarker; 
    if(myMarker == null){ 
     marker = map.addMarker(options); 
    } 
    else { 
     marker.setPosition(new LatLng(location.getLatitude(),location.getLongitude())); 
    } 

希望這會有所幫助。讓我知道這是行不通的。將發佈更多相關的代碼。