1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
| package com.example.googlemapv2;
import android.app.Activity;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.view.Menu;
import android.widget.Toast;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
public class MainActivity extends Activity implements LocationListener {
private LocationManager locationManager;
private GoogleMap gMap;
private Marker marker;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gMap = ((MapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap();
marker = gMap.addMarker(new MarkerOptions().title("Vous êtes ici")
.position(new LatLng(0, 0)));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onResume() {
super.onResume();
locationManager = (LocationManager) this
.getSystemService(LOCATION_SERVICE);
if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
abonnementGPS();
}
}
@Override
public void onPause() {
super.onPause();
// On appelle la méthode pour se désabonner
desabonnementGPS();
}
public void desabonnementGPS() {
// Si le GPS est disponible, on s'y abonne
locationManager.removeUpdates(this);
}
public void abonnementGPS() {
// On s'abonne
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
5000, 10, this);
}
@Override
public void onLocationChanged(Location location) {
final StringBuilder msg = new StringBuilder("lat : ");
msg.append(location.getLatitude());
msg.append("; lng : ");
msg.append(location.getLongitude());
Toast.makeText(this, msg.toString(), Toast.LENGTH_SHORT).show();
final LatLng latLng = new LatLng(location.getLatitude(),
location.getLongitude());
gMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 15));
marker.setPosition(latLng);
}
@Override
public void onProviderDisabled(String provider) {
if ("gps".equals(provider)) {
desabonnementGPS();
}
}
@Override
public void onProviderEnabled(String provider) {
if ("gps".equals(provider)) {
abonnementGPS();
}
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
} |
Partager