Tutoriel Android : Géolocalisation du téléphone de l'utilisateur sur un GoogleMap V2 à travers un Marker
Dans un tuto précédent nous avons appris à intégrer GoogleMap V2 dans son application.
Cet article constitue la suite de ce précédent tutoriel et ne pourrait être réalisé qu'après avoir effectué le travail présenté par ce tuto : Tutoriel Android : intégrer Google Map V2 dans son app avec Android Studio .
Maintenant après avoir intégrer la Map dans son application nous allons apprendre à géolocaliser l’appareil de l'utilisateur sur la Map à travers un marker. Pour pouvoir géolocaliser l'utilisateur nous devons implémenter l'interface OnLocationListener. Le code de notre activité expliquera mieux :
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
Cet article constitue la suite de ce précédent tutoriel et ne pourrait être réalisé qu'après avoir effectué le travail présenté par ce tuto : Tutoriel Android : intégrer Google Map V2 dans son app avec Android Studio .
Maintenant après avoir intégrer la Map dans son application nous allons apprendre à géolocaliser l’appareil de l'utilisateur sur la Map à travers un marker. Pour pouvoir géolocaliser l'utilisateur nous devons implémenter l'interface OnLocationListener. Le code de notre activité expliquera mieux :
import android.Manifest; import android.app.ProgressDialog; import android.content.pm.PackageManager; import android.location.Criteria; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.support.v4.app.ActivityCompat; import android.support.v4.app.FragmentActivity; import android.os.Bundle; import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.OnMapReadyCallback; import com.google.android.gms.maps.SupportMapFragment; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.MarkerOptions; public class MapsActivity extends FragmentActivity implements OnMapReadyCallback, LocationListener { GoogleMap mMap; LocationManager l; LatLng myLocatiion ; String providerFine; ProgressDialog p; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_maps); SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.map); mapFragment.getMapAsync(this); getLocation(); if(myLocatiion == null) { p= new ProgressDialog(MapsActivity.this); p.setMessage("Chercher position"); p.show(); } } @Override public void onMapReady(GoogleMap googleMap) { mMap = googleMap; } public void getLocation() { if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(MapsActivity.this,new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION},103); } else { l = (LocationManager) getSystemService(LOCATION_SERVICE); Criteria criteria = new Criteria(); criteria.setAltitudeRequired(false); criteria.setBearingRequired(false); criteria.setCostAllowed(false); criteria.setPowerRequirement(Criteria.POWER_LOW); // criteria.setAccuracy(Criteria.ACCURACY_FINE); providerFine = l.getBestProvider(criteria, true); l.requestLocationUpdates(providerFine, 0, 20, this); } } @Override public void onLocationChanged(Location location) { myLocatiion=new LatLng(location.getLatitude(),location.getLongitude()); p.dismiss(); mMap.addMarker(new MarkerOptions().position(myLocatiion).title("Je suis ici")); mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(myLocatiion,10)); } @Override public void onStatusChanged(String s, int i, Bundle bundle) { } @Override public void onProviderEnabled(String s) { } @Override public void onProviderDisabled(String s) { } }Finalement il ne faut pas oublier d'ajouter les deux permissions suivantes à votre fichier manifest.xml:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
Commentaires
Enregistrer un commentaire
Your comment will be reviewed by moderators