M0286_Libro Curso
Android
En el método onCreate() hemos definido la vista del mapa.xml, recuperamos los lugares que deseamos mostrar en el mapa y realizamos la geolocalización con el método registraServiciosDeLocalizaciónGPS() , que definimos a continuación: private void registraServiciosDeLocalizaciónGPS() { lm = (LocationManager) getSystemService(Context. LOCATION_SERVICE ); // criteria.setAccuracy(Criteria. ACCURACY_FINE ); best = lm.getBestProvider(criteria, true); // a la última ubicación conocida. Location location = lm.getLastKnownLocation(best); if (location != null) { // anadePuntoAlMapaConItemizedOverlay(Stri ng.valueOf(location.getLatitude()),String.valueOf(location. getLongitude())); } locationListener = new MyLocationListener(); lm.requestLocationUpdates(best, 4000, 0, locationListener); // Mostramos las coordenadas solo la primera vez Criteria criteria = new Criteria(); // si el GPS = off --> best = Network
que nos localiza Toast.makeText( SeasTuristicLocationZaragoza. getInstance () .getBaseContext(),
“Location changed : Lat: “
+ loc.getLatitude() loc.getLongitude(),
+ “ Lng: “ +
Toast. LENGTH_SHORT ).show();
} Criteria es una clase que indica los criterios para la selección del proveedor de ubicación. Estos proveedores se ordenan de acuerdo a los costos de precisión, el uso de la energía, la capacidad para informar de la altitud, la velocidad y el rumbo, y coste económico. // añade imagen al mapa con Overlay public synchronized void anadePuntoAlMapaConOverlay (String latitud, String longitud) { String coordinates[] = { latitud, longitud }; double lat = Double. parseDouble (coordinates[0]); double lng = Double. parseDouble (coordinates[1]); GeoPoint p; // Trabaja en microgrados para las coordenadas y
por eso hay que
// multiplicar por un millón
282
Made with FlippingBook - Online catalogs