2016-07-04 33 views
2

私はマーカーを地図上に持っており、マーカーの位置を変更する必要があります。私はこの方法をonLocationChanged追加したアンドロイドでの位置変更のマーカー位置を変更する方法

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

、その中で、場所の詳細情報を取得していますが、新しい場所にマーカーを移動したりしない:ここでは

は私のコードです。

+0

ロケーションの変更で更新されたlatが長くなっていますか? –

答えて

3

地図にマーカーが追加されていないかどうかを確認してください(はじめて)。そうでなければ、マーカーを追加し、そのマーカーへの参照を保持します。以降のonLocationChangedの呼び出しでは、同じ参照を使用して緯度と経度を更新してください。

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

これが役に立ちます。これがうまくいかないことを私に教えてください。より関連性の高いコードを投稿します。

関連する問題