13.android localizacion

19
Android Localización Guido Ticona Hurtado [email protected]

Transcript of 13.android localizacion

Page 1: 13.android   localizacion

AndroidLocalización

Guido Ticona [email protected]

Page 2: 13.android   localizacion

GPS Red de Telefonía Movil Red WI-FI

Loalización Geográfica

Page 3: 13.android   localizacion

1 Obtener mecanismo de localizacion (location providers)

2 Establecer la mejor localizacion 3 Verificar si está habilitado

Pasos

Page 4: 13.android   localizacion

LocationManager locManager = (LocationManager)getSystemService(LOCATION_SERVICE);

List<String> listaProviders = locManager.getAllProviders();

1. Obtener mecanismos

Page 5: 13.android   localizacion

LocationProvider provider = locManager.getProvider(listaProviders.get(0));

int precision = provider.getAccuracy(); boolean obtieneAltitud = provider.supportsAltitude(); int consumoRecursos = provider.getPowerRequirement(); boolean reqCelular = provider.requiresCell(); boolean reqRed = provider.requiresNetwork(); boolean reqSat = provider.requiresSatellite();

2. Exactitud

Page 6: 13.android   localizacion

Criteria req = new Criteria(); req.setAccuracy(Criteria.ACCURACY_FINE); req.setAltitudeRequired(true);

String mejorProviderCrit = locManager.getBestProvider(req, false);

  List<String> listaProvidersCrit =

locManager.getProviders(req, false);

2. Exactitud

Page 7: 13.android   localizacion

if (!locManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {

     mostrarAvisoGpsDeshabilitado(); }

Implementar Clase LocationListener

3. Verificar si esta habilitado

Page 8: 13.android   localizacion

Obtener ultima localizacion◦ locManager.getLastKnownLocation(LocationManag

er.GPS_PROVIDER);

Estableder frecuencia◦  locManager.requestLocationUpdates(◦         LocationManager.GPS_PROVIDER, 30000, 0,

this); Deshabilitar Rastreo

locManager.removeUpdates(this);

4. Otras funciones

Page 9: 13.android   localizacion

Instalar Google API Crear una Virtual con Google API Configurar acceso a internet Usar libreria com.google.android.maps

Mapas

Page 10: 13.android   localizacion

Keytool –list –keystore debug.keystore –storepass android –keypass android

https://developers.google.com/android/maps-api-signup

Copiar el MD5

Certificado Google

Page 11: 13.android   localizacion

Rango de puntos◦ -17.354882 y -66.189623◦ -17.429908 y -66.127481

Plaza principal ◦ -17.393847 y -66.156954

Latitud y Longitud

Page 12: 13.android   localizacion

Clase MapActivity Widget MapView Clase control MapController

=>getController() Metodos

◦ setBuiltInZoomcontrols(true)◦ isSatellite => setSatellite◦ isStreetView => setStreetView◦ isTraffic => setTraffic

Mapas en Android

Page 13: 13.android   localizacion

Centrar mapa◦ GeoPoint loc=new

GeoPoint(la.intValue,lo.intValue)◦ Control.setCenter(loc)◦ Control.setZoom(10)

Convertir LatLon a pixeles◦ Projection => getProyection()◦ Projection.toPixels(loc,punto)

Convertir pixeles a LatLon◦ Proyection => getProyection()◦ Proyection.fromPixels()

Mapas en Android (cont.)

Page 14: 13.android   localizacion

Capas => Overlay => getOverlays() Metodo =>add() Llamar a postInvalidate() para activar

overlay

Capas - Overlays

Page 15: 13.android   localizacion

Capa Base

Capas – Overlays (cont.)

Capa Intermedia

Capa Superior

Page 16: 13.android   localizacion

Capturar puntos◦ Implementar metodo onTap()◦ Point.getLatitudeE6/1E6◦ Point.getLongitudeE6/1E6

Capas – Overlays (cont.)

Page 17: 13.android   localizacion

Dibujar Circulos/Texto◦ Canvas.drawCircle(x,y,5,paint)◦ Canvas.drawText(“Texto”,x,y,paint)

Dibujar imagen◦ Bitmap

b=BitmapFactory.decodeResource(mapView.getResources(),R.drawable.imagen)

◦ Canvas.drawBitmap(b,x,y,paint)

Capas – Overlays (cont.)

Page 18: 13.android   localizacion

Geocoder g= new Geocoder(this.Locale.getDefault())

List<Address> a=g.getFromLocation(xE6,yE6,max)

Metodos Auxiliares◦ Size()◦ Get()◦ getMaxAddressLineIndex()◦ getAddressLine()

Geocoding

Page 19: 13.android   localizacion

Geocoder g= new Geocoder(this.Locale.getDefault())

List<Address> a= g.getFromLocationName( "empire state building", 5)

Metodos Auxiliares◦ Get()◦ getLatitude()◦ getLongitud()◦ animateTo(p)

Reverse-Geocoding