Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android How to focus on current position

Hi I've an android app that finds your location on google maps, but when I've started the app it started from Africa not in my current city,country,location etc. I've already checked info's on developer.android.com related with location issues but the problem persists.

Here is the code; any ideas? thanks..

  package com.kodlab.nerdeyim;

  import android.location.Location;
  import android.os.AsyncTask;
  import android.os.Bundle;
  import android.support.v4.app.FragmentActivity;

   import com.google.android.gms.common.ConnectionResult; 
   import com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks;
   import  com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener;
   import com.google.android.gms.location.LocationClient;
   import com.google.android.gms.location.LocationListener;
   import com.google.android.gms.location.LocationRequest;
   import com.google.android.gms.maps.CameraUpdateFactory;
   import com.google.android.gms.maps.GoogleMap;
   import com.google.android.gms.maps.SupportMapFragment;
   import com.google.android.gms.maps.model.LatLng;

   public class MainActivity extends FragmentActivity implements ConnectionCallbacks,    OnConnectionFailedListener, LocationListener {

private LocationClient locationClient;
private LocationRequest locationRequest;
private GoogleMap googleMap;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    locationClient = new LocationClient(this, this, this);

    locationRequest = LocationRequest.create()
              .setInterval(5000)
              .setFastestInterval(500)
              .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);

    SupportMapFragment supportMapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
    googleMap = supportMapFragment.getMap();
    googleMap.setMyLocationEnabled(true);   
}

@Override
public void onLocationChanged(Location location) {
    HaritadaKonumGosterAsyncTask task = new HaritadaKonumGosterAsyncTask();
    task.execute(new Location[] {location});
}

@Override
public void onConnected(Bundle connectionHint) {
    locationClient.requestLocationUpdates(locationRequest, this);
}

@Override
public void onDisconnected() {}

@Override
public void onConnectionFailed(ConnectionResult result) {}

@Override
protected void onResume() {
    super.onResume();
    locationClient.connect();
}

@Override
public void onPause() {
    super.onPause();

    if(locationClient.isConnected())
        locationClient.removeLocationUpdates(this);

    locationClient.disconnect();
}

private class HaritadaKonumGosterAsyncTask  extends AsyncTask<Location, Void, LatLng> {

    @Override
    protected LatLng doInBackground(Location... params) {
        Location konum = params[0];
        return new LatLng(konum.getLatitude(), konum.getLongitude());
    }

    @Override
    protected void onPostExecute(LatLng konum) {
        googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(konum, 15));
    }

}


 }
like image 882
regeme Avatar asked Dec 20 '22 00:12

regeme


1 Answers

Thanks to your code solved my problem, now I help

public void onLocationChanged(Location location) 
{
  // Getting latitude of the current location
  double latitude = location.getLatitude();

  // Getting longitude of the current location
  double longitude = location.getLongitude();

  float speed = location.getSpeed();

  // Creating a LatLng object for the current location
  LatLng latLng = new LatLng(latitude, longitude);

  // Showing the current location in Google Map
  CameraPosition camPos = new CameraPosition.Builder()
    .target(new LatLng(latitude, longitude))   
    .zoom(18)        
    .bearing(location.getBearing())
    .tilt(70)
    .build();
  CameraUpdate camUpd3 = CameraUpdateFactory.newCameraPosition(camPos);
  googleMap.animateCamera(camUpd3);
}
like image 128
juan david trujillo Avatar answered Jan 01 '23 15:01

juan david trujillo