Blog dedicado a la programación y a la informática en general

Ir al contenido | Ir al menú | Ir a las búsquedas

OSMDroid - Falsear la ubicación

osmdroid.png

Cuando desarrollamos una aplicación normalmente no disponemos de una ubicación precisa GPS ni queremos que el mapa siempre nos marque el mismo punto. Podemos cambiar la ubicación de una forma sencilla.

Cuando estuve haciendo la entrada de Open Street Maps y Android el GPS no me obtenía la localización ya que me encontraba en el interior. Buscando por ahí encontré alguien con un problema similar y lo resolvió sobrescribiendo el proveedor de localizaciones para poder especificar las coordenadas GPS que quisiera.

Para hacerlo, basta con crear un fichero llamado MyMockupGpsMyLocationProvider.java y pegar el siguiente contenido:

import android.content.Context;
import android.location.Location;

import org.osmdroid.views.overlay.mylocation.IMyLocationConsumer;
import org.osmdroid.views.overlay.mylocation.IMyLocationProvider;

class MyMockupGpsMyLocationProvider implements IMyLocationProvider {
    private IMyLocationConsumer listener = null;
    Location newLoc = new Location(getLastKnownLocation());

    public MyMockupGpsMyLocationProvider(Context contexto){

    }

    public boolean startLocationProvider(IMyLocationConsumer var1) {
        listener = var1;
        return true;
    }

    public void stopLocationProvider() {
    }

    public Location getLastKnownLocation() {
        Location targetLocation = new Location("");
        targetLocation.setLatitude(40.712784d);
        targetLocation.setLongitude(-74.005941d);
        return targetLocation;
    }

    public void updateLocation(Location newLoc) {
        listener.onLocationChanged(newLoc, this);
    }

    public void destroy(){

    }
}

Como vemos, en el método getLastKnownLocation() se especifican las coordenadas que tendrá la localización por defecto. A través del método updateLocation() podremos ir modificando esa ubicación si es necesario.

Para utilizar la clase basta con utilizarla en lugar de GpsMyLocationProvider tal y como se muestra en la siguiente imagen: falseargps.png

Fuente: https://stackoverflow.com/questions/34435618/osmdroid-simulating-fake-gps-locations

Añadir un comentario

El código HTML se muestra como texto y las direcciones web se transforman automáticamente.

Discusiones sobre el mismo tema

URL de retroenlace : https://www.dosmweb.com/blog/index.php?trackback/18

Fuente de los comentarios de esta entrada