Investigacion GPS

17
  1 Instituto Tecnológico de Chilpancingo Sistemas y Computación Ingeniería en Sistemas Computacionales Investigación GPS Materia: Taller de Computo Móvil. Prof.: M. en C. José Mario Martínez Castro Alumnos: Bethsaida Sandoval Hermenegildo. Rudy León García. Chilpancingo, Gr o., Fe brero de 2015

description

Descripcion del ejemplo de la aplicación utilizando GPS

Transcript of Investigacion GPS

  • 1

    Instituto Tecnolgico de Chilpancingo

    Sistemas y Computacin

    Ingeniera en Sistemas Computacionales

    Investigacin GPS

    Materia: Taller de Computo Mvil.

    Prof.: M. en C. Jos Mario Martnez Castro

    Alumnos:

    Bethsaida Sandoval Hermenegildo.

    Rudy Len Garca.

    Chilpancingo, Gro., Febrero de 2015

  • 2

    ndice

    1. Introduccin ________________________________________________3

    1.1. Definicin del GPS _________________________________________4

    1.2. Funcionamiento____________________________________________4

    1.3. Caractersticas_____________________________________________5

    2. Desarrollo de la prctica______________________________________6

    2.1. Modificacin del Archivo de configuracin AndroidManifest.xm_____9

    2.2. Creacin de la clase GPSTracker.java__________________________9

    2.3. Variables y Funciones______________________________________10

    2.4. Desarrollo de la clase AndroidGPSTrackingActivity.java__________14

    2.5. Modificacin del archivo main.xml___________________________ 16

    Bibliografa _________________________________________________17

  • 3

    INTRODUCCION

    La armada estadounidense aplic esta tecnologa de navegacin utilizando satlites, para

    proveer a los sistemas de navegacin de sus flotas observaciones de posiciones actualizadas y

    precisas. As surgi el sistema TRANSIT, que qued operativo en 1964, y hacia 1967 estuvo

    disponible, adems, para uso comercial.

    Las actualizaciones de posicin, en ese entonces, estaban disponibles cada 40 minutos y el

    observador deba permanecer casi esttico para poder obtener informacin adecuada.

    Posteriormente, en esa misma dcada y gracias al desarrollo de los relojes atmicos, se dise

    una constelacin de satlites, portando cada uno de ellos uno de estos relojes y estando todos

    sincronizados con base en una referencia de tiempo determinado.

    En 1973 se combinaron los programas de la Armada y el de la Fuerza Area de los Estados

    Unidos (este ltimo consistente en una tcnica de transmisin codificada que provea datos

    precisos usando una seal modulada con un cdigo de PRN (Pseudo-Random Noise: ruido

    pseudo-aleatorio), en lo que se conoci como Navigation Technology Program (programa de

    tecnologa de navegacin), posteriormente renombrado como NAVSTAR GPS.

    Entre 1978 y 1985 se desarrollaron y lanzaron once satlites prototipo experimentales

    NAVSTAR, a los que siguieron otras generaciones de satlites, hasta completar la constelacin

    actual, a la que se declar con capacidad operacional inicial en diciembre de 1993 y con

    capacidad operacional total en abril de 1995.

    En 2009, el gobierno de los Estados Unidos ofreci el servicio normalizado de determinacin

    de la posicin para apoyar las necesidades de la OACI, y sta acept el ofrecimiento.

    Fig.1

  • 4

    GPS

    El sistema de posicionamiento global (GPS) es un objeto que permite a una persona determinar

    en todo el mundo la posicin de un objeto, una persona o un vehculo con una precisin hasta

    de centmetros (si se utiliza GPS diferencial), aunque lo habitual son unos pocos metros de

    precisin. El sistema fue desarrollado, instalado y empleado por el Departamento de Defensa

    de los Estados Unidos. El sistema GPS est constituido por 24 satlites y utiliza la triangulacin

    para determinar en todo el globo la posicin con una precisin de ms o menos metros.

    FUNCIONAMIENTO

    El GPS funciona mediante una red de 24 satlites en rbita sobre el planeta tierra, a 20 200 km

    de altura, con trayectorias sincronizadas para cubrir toda la superficie de la Tierra.

    Cuando se desea determinar la posicin, el receptor que se utiliza para ello localiza

    automticamente como mnimo cuatro satlites de la red, de los que recibe unas seales

    indicando la identificacin y la hora del reloj de cada uno de ellos.

    Con base en estas seales, el aparato sincroniza el reloj del GPS y calcula el tiempo que tardan

    en llegar las seales al equipo, y de tal modo mide la distancia al satlite

    mediante triangulacin (mtodo de trilateracin inversa), la cual se basa en determinar la

    distancia de cada satlite respecto al punto de medicin.

    Conocidas las distancias, se determina fcilmente la propia posicin relativa respecto a los tres

    satlites. Conociendo adems las coordenadas o posicin de cada uno de ellos por la seal que

    emiten, se obtiene la posicin absoluta o coordenada reales del punto de medicin. Tambin se

    consigue una exactitud extrema en el reloj del GPS, similar a la de los relojes atmicos que

    llevan a bordo cada uno de los satlites.

    La antigua Unin Sovitica construy un sistema similar llamado GLONASS, ahora gestionado

    por la Federacin Rusa.

    Actualmente la Unin Europea est desarrollando su propio sistema de posicionamiento por

    satlite, denominado Galileo.

    A su vez, la Repblica Popular China est implementando su propio sistema de navegacin, el

    denominado Beidou, prevn que cuente con 12 y 14 satlites entre 2011 y 2015. Para 2020, ya

    plenamente operativo deber contar con 30 satlites. En abril de 2011 tenan ocho en rbita.

  • 5

    CARACTERISTICAS

    El Sistema Global de Navegacin por Satlite lo componen:

    Segmento espacial

    Satlites en la constelacin: 24 (4 6 rbitas)

    Altitud: 20 200 km

    Perodo: 11 h 58 min (12 horas sidreas)

    Inclinacin: 55 grados (respecto al ecuador terrestre).

    Vida til: 7,5 aos

    Segmento de control (estaciones terrestres) Fig.2

    Estacin principal: 1

    Antena de tierra: 4

    Estacin monitora (de seguimiento): 5, Colorado Springs, Hawi, Kwajalein, Isla de

    Ascensin e Isla de Diego Garca

    Seal RF

    Frecuencia portadora:

    Civil 1575,42 MHz (L1). Utiliza el Cdigo de Adquisicin Aproximativa (C/A). Militar 1227,60 MHz (L2). Utiliza el Cdigo de Precisin (P), cifrado. Nivel de potencia de la seal: 160 dBW (en superficie tierra). Polarizacin: circular dextrgira.

    Precisin

    Posicin: oficialmente aproximadamente 15 m (en el 95 % del tiempo). En la realidad un GPS

    porttil monofrecuencia de 12 canales paralelos ofrece una precisin de entre 2,5 y 3 metros en

    ms del 95 % del tiempo. Con el WAAS / EGNOS / MSAS activado, la precisin asciende de

    1 a 2 metros.

    Hora: 1 ns

    Cobertura: mundial

    Capacidad de usuarios: ilimitada

    Sistema de coordenadas:

  • 6

    Sistema Geodsico Mundial 1984 (WGS84).

    Centrado en la Tierra, fijo.

    Integridad: tiempo de notificacin de 15 minutos o mayor. No es suficiente para la aviacin civil.

    Disponibilidad: 24 satlites y 21 satlites. No es suficiente como medio primario de navegacin.

    2. DESARROLLO DE LA PRCTICA

    Con el fin de desarrollar una aplicacin basada en la ubicacin, se realizar una aplicacin

    mediante la bsqueda automtica, para ellos se integra el mdulo de localizacin por medio del

    GPS.

    2.1 Crear un nuevo proyecto Android

    Para crear el nuevo proyecto en eclipse ir al a la opcin File New Project (Fig.1)

    Fig.1 Creacion de un nuevo proyecto

  • 7

    Despues de seleccionar la opcion Project se debe seleccionar el tipo de proyecto a realizar en

    este caso Android ApplicationProyect despus dar clic en siguiente (Fig.2).

    Fig.2 Seleccin del tipo de proyecto

    Una vez seleccionado el proyecto que se desarrollar, es necesario completar los campos que se

    muestran en la ventana (Fig. 3)

    Fig.3 Datos utilizados para el nuevo proyecto

  • 8

    Prosiguiendo con el completado de datos para las siguientes 3 ventanas no se hacen

    cambios dando as clic en next, como se muestra en la Fig. 4 a excepcin de la ltima

    ventana donde se cambiar el Layout Name (Fig.5).

    Fig.4 Datos dados por default en el proyecto

    Fig. 5 Cambio del Layout Name

    2.1 Modificacin del Archivo de configuracin AndroidManifest.xm

  • 9

    Una vez creado el proyecto, se debe modificar el archivo AndroidManifest.xml agregando los

    permisos

    Si recibe ubicacin basada en la red, entonces es necesario agregar el permiso de INTERNET.

    2.2 Creacin de la clase GPSTracker.java

    Dentro de la carpeta src del proyecto se crear una nueva clase llamada

    GPSTracker.java extender las llamadas de servicio y tambin aplicarla a la clase

    de LocationListener.

    public class GPSTracker extends Service implements LocationListener

    {

    2.3 Variables y Funciones

    Se agregaran las variables globales necesarias y un constructor para esta clase.

    public class GPSTracker extends Service implements LocationListener

    {

    private final Context mContext;

    Bandera de estado del GPS boolean isGPSEnabled = false;

    Bandera de estado de la red boolean isNetworkEnabled = false;

    Bandera de estado del GPS boolean canGetLocation = false;

    Location location; // Ubicacion

    double latitude; // latitud

  • 10

    double longitude; // longitud

    La distancia mnima para cambiar Actualizaciones en metros private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 10;

    10 metros

    El tiempo mnimo entre actualizaciones en milisegundos private static final long MIN_TIME_BW_UPDATES = 1000 * 60 * 1;

    1 minuto

    Declarar un gerente de locacin

    protected LocationManager locationManager;

    public GPSTracker(Context context) {

    this.mContext = context;

    getLocation();

    }

    Aadir a la aplicacin la funcin de getLocation () que se llam en el constructor. En esta

    funcin se obtiene la ubicacin del proveedor de la red por primera vez. Si el proveedor de la

    red estar inhabilitado, entonces obtenemos la ubicacin del proveedor GPS (Fig.6)

    Fig.6 Permitir utilizar un proveedor de red

    public Location getLocation() {

    try {

    locationManager = (LocationManager) mContext

    .getSystemService(LOCATION_SERVICE);

    Obtener el estado del GPS

    isGPSEnabled = locationManager

    .isProviderEnabled(LocationManager.GPS_PROVIDER);

  • 11

    Obtener el estado del GPS isNetworkEnabled = locationManager

    .isProviderEnabled(LocationManager.NETWORK_PROVIDER); if (!isGPSEnabled && !isNetworkEnabled) {

    Si Ningn proveedor de red est habilitado

    } else {

    this.canGetLocation = true;

    if (isNetworkEnabled) {

    locationManager.requestLocationUpdates(

    LocationManager.NETWORK_PROVIDER, MIN_TIME_BW_UPDATES,

    MIN_DISTANCE_CHANGE_FOR_UPDATES,this);

    Log.d("Network", "Network");

    if (locationManager != null) {

    location = locationManager

    .getLastKnownLocation(LocationManager.NETWORK_PROVIDER);

    if (location != null) {

    latitude = location.getLatitude();

    longitude = location.getLongitude();

    }

    }

    }

    Si el GPS est habilitado conseguir latitud y longitud utilizando Servicios GPS if (isGPSEnabled) {

    if (location == null) {

    locationManager.requestLocationUpdates(

    LocationManager.GPS_PROVIDER,MIN_TIME_BW_UPDATES,

    MIN_DISTANCE_CHANGE_FOR_UPDATES, this);

    Log.d("GPS Enabled", "GPS Enabled");

    if (locationManager != null){

    location =

    locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

    if (location != null) {

    latitude = location.getLatitude();

    longitude = location.getLongitude();

    }

    Llamar a esta funcin dejar de usar el GPS en su aplicacin public void stopUsingGPS(){

  • 12

    if(locationManager != null){

    locationManager.removeUpdates(GPSTracker.this);

    }

    }

    Funcin para obtener la latitud public double getLatitude(){

    if(location != null){

    latitude = location.getLatitude();

    }

    Retornar latitud return latitude;

    }

    Funcin para obtener la longitud

    public double getLongitude(){

    if(location != null){

    longitude = location.getLongitude();

    }

    Retorno de la logitud return longitude;

    }

    Funcin para comprobar GPS / wifi habilitado

    public boolean canGetLocation() {

    return this.canGetLocation;

    }

    Funcin para mostrar los ajustes de dilogo de alerta, al presionar el botn de ajustes abrir la

    opcin de ajustes

    public void showSettingsAlert(){

    AlertDialog.Builder alertDialog = new

    AlertDialog.Builder(mContext);

    Configuracin del Ttulo alertDialog.setTitle("Ajustes Del GPS");

  • 13

    Configuracin de mensajes de dilogo (Fig.7) alertDialog.setMessage

    ("GPS no est habilitado.Quieres ir al men de configuracin?");

    Fig.7 Alerta de GPS no habilitado

    Si es presionado el botn de ajustes este direccionar al men del mvil para as poder activar

    el GPS (Fig.8)

    alertDialog.setPositiveButton("Ajustes", new

    DialogInterface.OnClickListener() {

    public void onClick(DialogInterface dialog,int which) {

    Intent intent = new

    Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);

    mContext.startActivity(intent);

    }

    });

    Fig.8 Men de activacin del GPS en el mvil

    Al pulsar el botn cancelar este saldr del dialogo y volver al men de inicio

  • 14

    alertDialog.setNegativeButton("Cancelar", new

    DialogInterface.OnClickListener() {

    public void onClick(DialogInterface dialog, int which) {

    dialog.cancel();

    }

    });

    Mostrar un mensaje de alerta alertDialog.show();

    }

    2.4. Desarrollo de la clase AndroidGPSTrackingActivity.java

    Esta clase contiene las siguientes funciones para GPSTracker.java. Estas funciones

    devolvern 0.00 si no logra obtener la latitud y longitud o si tarda al cargar (Fig. 10)

    Despues de un tiempo carga la ubicacin y la muestra Fig.11

    Fig.10 Cargando la configuracin

  • 15

    Fig.11

    public class AndroidGPSTrackingActivity extends Activity {

    Button btnShowLocation;

    GPSTracker class GPSTracker gps;

    @Override

    public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

    btnShowLocation = (Button)

    findViewById(R.id.btnShowLocation);

    Mostrar ubicacin al hacer click en el botn

    btnShowLocation.setOnClickListener(new

    View.OnClickListener() {

    @Override

    public void onClick(View arg0) {

    Crear class object gps = new

    GPSTracker(AndroidGPSTrackingActivity.this);

  • 16

    // comprobar si est activado el GPS

    if(gps.canGetLocation()){

    double latitude = gps.getLatitude();

    double longitude = gps.getLongitude();

    // \n Nueva lnea

    Toast.makeText(getApplicationContext(), "Su

    Ubicacion es - \nLat: " + latitude + "\nLong: " + longitude,

    Toast.LENGTH_LONG).show();

    }else{

    //no se puede obtener la ubicacin

    // GPS o la red no est habilitada

    // Preguntar al usuario para activar el GPS /

    ajustes de red

    gps.showSettingsAlert();

    }

    }

    });

    }

    }

    2.5 Modificacin de main.xml

    Se crear un botn en el archivo main.xml para que este mande a llamar las funciones necesarias

    con el siguiente cdigo y como se muestra en la figura 11.

    Fig.12 Interfaz del archivo main.xml

  • 17

    Bibliografa

    http://www.penyagolosa.net/informacion-general/que-es-el-gps-funcionamiento-

    general.html

    http://www.gps-sisat.com.ar/Web-%20datos.pdf

    http://es.wikipedia.org/wiki/Sistema_de_posicionamiento_global#Caracter.C3.ADstic

    as_t.C3.A9cnicas_y_prestaciones

    http://www.gpsparaflotas.es/como-funciona-gta/

    http://webs.um.es/bussons/GPSresumen_TamaraElena.pdf

    http://www.androidhive.info/2012/07/android-gps-location-manager-tutorial/