13.android localizacion
Transcript of 13.android localizacion
AndroidLocalización
Guido Ticona [email protected]
GPS Red de Telefonía Movil Red WI-FI
Loalización Geográfica
1 Obtener mecanismo de localizacion (location providers)
2 Establecer la mejor localizacion 3 Verificar si está habilitado
Pasos
LocationManager locManager = (LocationManager)getSystemService(LOCATION_SERVICE);
List<String> listaProviders = locManager.getAllProviders();
1. Obtener mecanismos
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
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
if (!locManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
mostrarAvisoGpsDeshabilitado(); }
Implementar Clase LocationListener
3. Verificar si esta habilitado
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
Instalar Google API Crear una Virtual con Google API Configurar acceso a internet Usar libreria com.google.android.maps
Mapas
Keytool –list –keystore debug.keystore –storepass android –keypass android
https://developers.google.com/android/maps-api-signup
Copiar el MD5
Certificado Google
Rango de puntos◦ -17.354882 y -66.189623◦ -17.429908 y -66.127481
Plaza principal ◦ -17.393847 y -66.156954
Latitud y Longitud
Clase MapActivity Widget MapView Clase control MapController
=>getController() Metodos
◦ setBuiltInZoomcontrols(true)◦ isSatellite => setSatellite◦ isStreetView => setStreetView◦ isTraffic => setTraffic
Mapas en Android
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.)
Capas => Overlay => getOverlays() Metodo =>add() Llamar a postInvalidate() para activar
overlay
Capas - Overlays
Capa Base
Capas – Overlays (cont.)
Capa Intermedia
Capa Superior
Capturar puntos◦ Implementar metodo onTap()◦ Point.getLatitudeE6/1E6◦ Point.getLongitudeE6/1E6
Capas – Overlays (cont.)
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.)
Geocoder g= new Geocoder(this.Locale.getDefault())
List<Address> a=g.getFromLocation(xE6,yE6,max)
Metodos Auxiliares◦ Size()◦ Get()◦ getMaxAddressLineIndex()◦ getAddressLine()
Geocoding
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