googleMap.getMyLocation(); cannot get current location
Solution 1
Try this...I hope this will be help to you
LocationManager locationManager = (LocationManager)
getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
Location location = locationManager.getLastKnownLocation(locationManager
.getBestProvider(criteria, false));
double latitude = location.getLatitude();
double longitude = location.getLongitude();
Solution 2
This is my code for you, I hope this help you... edit it if you think, it isn't with correct sintaxis...
This work for android 4.x and 5.x and 6.x, I not test this in android 7
//I use this like global var to edit or get informacion about google map
GoogleMap gMap;
@Override
public void onMapReady(GoogleMap googleMap) {
gMap = googleMap;
if (ActivityCompat.checkSelfPermission(Activity_Map.this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(Activity_Map.this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(Activity_Map.this,new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION}, 1);
}else{
if(!gMap.isMyLocationEnabled())
gMap.setMyLocationEnabled(true);
LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Location myLocation = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (myLocation == null) {
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_COARSE);
String provider = lm.getBestProvider(criteria, true);
myLocation = lm.getLastKnownLocation(provider);
}
if(myLocation!=null){
LatLng userLocation = new LatLng(myLocation.getLatitude(), myLocation.getLongitude());
gMap.animateCamera(CameraUpdateFactory.newLatLngZoom(userLocation, 14), 1500, null);
}
}
}
Solution 3
getMyLocation()
=> this method is deprecated. You need to use LocationClient
instead.
You can find informations about LocationClient
and how to get current location here
Related videos on Youtube
user3506223
Updated on September 11, 2020Comments
-
user3506223 over 3 years
i want to make a program to calculate the distance between some places to my current location, but my googleMap.getMyLocation(); doesnt work properly.
googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap(); googleMap.setMyLocationEnabled(true); googleMap.getUiSettings().setCompassEnabled(false); mylocation = googleMap.getMyLocation(); direction = new GMapV2Direction(); LatLng from, to; from = new LatLng(-7.26071409, 112.80674726); for(int i=0; i<lat.length; i++){ to = new LatLng(lat[i], lon[i]); doc = direksi.getDocument(from, to, GMapV2Direction.MODE_DRIVING); distance[i] = (double)direction.getDistanceValue(doc) / 1000; }
i saved the latitude and longitude of some places in lat[] and lon[]. LatLng 'from' is mylocation and 'to' is my destination places. the problem appear when i change
from = new LatLng(-7.26071409, 112.80674726); to from = new LatLng(mylocation.getLatitude(), mylocation.getLongitude());
i want to do the calculation without opening the googlemaps. the google maps will appear when i touch the map button as pop up window. so the calculation will happen without opening googlemap
please help me
-
Alex DG about 10 yearsgetMyLocation(), this method is deprecated. use LocationClient instead.
-
Android_coder about 10 yearsare you using google map v2?
-
user3506223 about 10 years@Alex i dont know how to use LocationClient. can you elaborate?
-
user3506223 about 10 years@Android yes i'm using google map v2 api
-
-
larsaars almost 4 yearsno it does not, since you don't even check getBestProvider and getLastKnownLocation to get null!