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
| public class Localisation extends MapActivity implements LocationListener {
MapView maMap = null;
MapController monControler = null;
double latitude = 48.875536;
double longitude = 2.335796;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.localisation);
maMap = (MapView)findViewById(R.id.mapview);
maMap.setBuiltInZoomControls(true);
GeoPoint point = new GeoPoint(microdegrees(latitude),microdegrees(longitude));
ItemizedOverlayPerso pinOverlay = new ItemizedOverlayPerso(getResources().getDrawable(R.drawable.marker));
pinOverlay.addPoint(point);
maMap.getOverlays().add(pinOverlay);
monControler = maMap.getController();
monControler.setZoom(12);
monControler.setCenter(point);
LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000L, 500.0f, this);
}
@Override
public void onLocationChanged(Location location) {
if (location != null) {
Toast.makeText(this, "Nouvelle position : " + location.getLatitude() + ", " + location.getLongitude(), Toast.LENGTH_SHORT).show();
monControler.animateTo(new GeoPoint(microdegrees(location.getLatitude()),microdegrees(location.getLongitude())));
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0,100,0,"Zoom In");
menu.add(0,101,0,"Zoom Out");
menu.add(0,102,0,"Satellite");
menu.add(0,103,0,"Trafic");
menu.add(0,104,0,"Street view");
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case 100: monControler.setZoom(maMap.getZoomLevel() + 1) ;break;
case 101: monControler.setZoom(maMap.getZoomLevel() - 1) ;break;
case 102: maMap.setSatellite(!maMap.isSatellite()) ;break;
case 103: maMap.setTraffic(!maMap.isTraffic()) ;break;
case 104: maMap.setStreetView(!maMap.isStreetView()) ;break;
}
return true;
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
menu.findItem(102).setIcon(maMap.isSatellite() ?android.R.drawable.checkbox_on_background:android.R.drawable.checkbox_off_background);
menu.findItem(103).setIcon(maMap.isTraffic() ?android.R.drawable.checkbox_on_background:android.R.drawable.checkbox_off_background);
menu.findItem(104).setIcon(maMap.isStreetView()?android.R.drawable.checkbox_on_background:android.R.drawable.checkbox_off_background);
return true;
}
private int microdegrees(double value){
return (int)(value*1000000);
}
public class ItemizedOverlayPerso extends ItemizedOverlay<OverlayItem> {
private List<GeoPoint> points = new ArrayList<GeoPoint>();
public ItemizedOverlayPerso(Drawable defaultMarker) {
super(boundCenterBottom(defaultMarker));
}
@Override
protected OverlayItem createItem(int i) {
GeoPoint point = points.get(i);
return new OverlayItem(point,"Titre", "Description");
}
@Override
public int size() {
return points.size();
}
public void addPoint(GeoPoint point) {
this.points.add(point);
populate();
}
public void clearPoint() {
this.points.clear();
populate();
}
}
@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
} |
Partager