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 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
| package com.android.map;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.location.LocationProvider;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.widget.Toast;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
public class HelloGoogleMapActivity extends MapActivity implements
LocationListener {
private MapView mapView;
private MapController mc;
private LocationManager lm;
private double latitude;
private double longitude;
private double altitude;
private float accuracy;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mapView = (MapView) this.findViewById(R.id.mapView);
mapView.setBuiltInZoomControls(true);
mc = mapView.getController();
mc.setZoom(17);
}
@Override
protected void onResume() {
super.onResume();
lm = (LocationManager) this.getSystemService(LOCATION_SERVICE);
if (lm.isProviderEnabled(LocationManager.GPS_PROVIDER))
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 0,
this);
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 10000, 0,
this);
}
@Override
protected void onPause() {
super.onPause();
lm.removeUpdates(this);
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
mapView.setSatellite(true);
return true;
} else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
mapView.setSatellite(false);
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onLocationChanged(Location location) {
latitude = location.getLatitude();
longitude = location.getLongitude();
altitude = location.getAltitude();
accuracy = location.getAccuracy();
String msg = String.format(
getResources().getString(R.string.new_location), latitude,
longitude, altitude, accuracy);
Toast.makeText(this, msg, Toast.LENGTH_LONG).show();
GeoPoint p = new GeoPoint((int) (latitude * 1E6), (int) (longitude * 1E6));
mc.animateTo(p);
mc.setCenter(p);
}
@Override
public void onProviderDisabled(String provider) {
String msg = String.format(
getResources().getString(R.string.provider_disabled), provider);
Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
}
@Override
public void onProviderEnabled(String provider) {
String msg = String.format(
getResources().getString(R.string.provider_enabled), provider);
Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
String newStatus = "";
switch (status) {
case LocationProvider.OUT_OF_SERVICE:
newStatus = "OUT_OF_SERVICE";
break;
case LocationProvider.TEMPORARILY_UNAVAILABLE:
newStatus = "TEMPORARILY_UNAVAILABLE";
break;
case LocationProvider.AVAILABLE:
newStatus = "AVAILABLE";
break;
}
String msg = String.format(
getResources().getString(R.string.provider_disabled), provider,
newStatus);
Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
}
} |
Partager