Home Menu

Menu



Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 23/02/13, 06:36:41
Avatar de carrobe1390
carrobe1390 carrobe1390 no está en línea
Miembro del foro
Mensajes: 47
 
Fecha de registro: feb 2013
Localización: Guayaquil
Mensajes: 47
Modelo de smartphone: Samsung Galaxy S3
Versión de ROM: 4.1.2
Tu operador: Claro
Mencionado: 0 comentarios
Tagged: 0 hilos
Obtener posicion cada minuto

private void posicion(){
mapView = (MapView)findViewById(R.id.mapa);
mapView.setBuiltInZoomControls(true);
mapView.setSatellite(true);
mapView.setStreetView(true);
mapView.setTraffic(true);

mapController = mapView.getController();
lat = location.getLatitude()*1E6;
lng = location.getLongitude()*1E6;

coglat = location.getLatitude()*1E6;
coglng = location.getLatitude()*1E6;

List<Overlay> mapOverlays = mapView.getOverlays();
mlo = new MyLocationOverlay(this, mapView);
Drawable drawable = this.getResources().getDrawable(R.drawable.map_pin _32);
MyOverlay itemizedOverlay = new MyOverlay(drawable, this);

point = new GeoPoint(lat.intValue(),lng.intValue());
//Toast.makeText(getApplicationContext(), "Tu Localizacion es : \nLat: " + lat + "\nLong: "+lng, Toast.LENGTH_LONG).show();
OverlayItem overlayitem = new OverlayItem(point, "Su posicion actual es : ", "Latitud: " + lat + "\nLongitud: " + lng);

itemizedOverlay.addOverlay(overlayitem);
mapOverlays.add(itemizedOverlay);
mapController.setCenter(point);
mapController.animateTo(point);
mapController.setZoom(16);

mlo.enableMyLocation();
mlo.enableCompass();
mapOverlays.add(mlo);
mapView.postInvalidate();
}

Tengo el sgte metodo que me da la posicion actual... pero lo que necesito es que cada minuto me de una nueva posicion junto con la antigua posicion dibujada en el mapa.. si alguien me pudiera ayudar.. es un poryecto y es algo urgente
Responder Con Cita


  #2  
Viejo 23/02/13, 16:53:39
Avatar de ysuran
ysuran ysuran no está en línea
Miembro del foro
Mensajes: 174
Compra y venta: (2)
 
Fecha de registro: mar 2009
Localización: Valencia
Mensajes: 174
Modelo de smartphone: Pixel 7 Pro
Tu operador: O2
Mencionado: 0 comentarios
Tagged: 0 hilos
Re: Obtener posicion cada minuto

Una forma de ejecutar ese código cada minuto es crear un timer que llame a esa función cada 60 segundos, muy sencillo.

Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
posicion();
}
}, 0, 60000);

Acuérdate de hacer timer.stop() cuando dejes de utilitzar el timer o continuará ejecutándose en segundo plano
Responder Con Cita
  #3  
Viejo 23/02/13, 18:15:07
Avatar de carrobe1390
carrobe1390 carrobe1390 no está en línea
Miembro del foro
Mensajes: 47
 
Fecha de registro: feb 2013
Localización: Guayaquil
Mensajes: 47
Modelo de smartphone: Samsung Galaxy S3
Versión de ROM: 4.1.2
Tu operador: Claro
Mencionado: 0 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por ysuran Ver Mensaje
Una forma de ejecutar ese código cada minuto es crear un timer que llame a esa función cada 60 segundos, muy sencillo.

Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
posicion();
}
}, 0, 60000);

Acuérdate de hacer timer.stop() cuando dejes de utilitzar el timer o continuará ejecutándose en segundo plano
Gracias por tu aporte pero creo que no me explique bien a lo que ejecuto inicialmente se muestra la posicion dond estoy pero si pasa el minuto se ejcuta de nuevo pero si me movi necesito la posicion antigua en la cual estuve a lo que inicio y la posicion nueva como podria hacer eso esa es la pregunta..
Responder Con Cita
  #4  
Viejo 23/02/13, 18:52:45
Avatar de ysuran
ysuran ysuran no está en línea
Miembro del foro
Mensajes: 174
Compra y venta: (2)
 
Fecha de registro: mar 2009
Localización: Valencia
Mensajes: 174
Modelo de smartphone: Pixel 7 Pro
Tu operador: O2
Mencionado: 0 comentarios
Tagged: 0 hilos
Re: Obtener posicion cada minuto

Al mapa, si mal no recuerdo, le puedes pedir un objeto del tipo Location. Podrías tener en el activity 2 variables Location privadas, una para la posición actual y otro para la anterior. Antes de actualizar el valor del actual, guárdalo en la variable anterior.
Si vas a necesitar todos los puntos de la ruta, puedes ir añadiendolos en un ArrayList o, si son muchos, en una sqlite. Hay muchas opciones para hacer eso Solo es cuestión de ver cuál se amolda mejor a lo que necesitas
Responder Con Cita
  #5  
Viejo 23/02/13, 19:14:46
Avatar de carrobe1390
carrobe1390 carrobe1390 no está en línea
Miembro del foro
Mensajes: 47
 
Fecha de registro: feb 2013
Localización: Guayaquil
Mensajes: 47
Modelo de smartphone: Samsung Galaxy S3
Versión de ROM: 4.1.2
Tu operador: Claro
Mencionado: 0 comentarios
Tagged: 0 hilos
Re: Obtener posicion cada minuto

Cita:
Originalmente Escrito por ysuran Ver Mensaje
Al mapa, si mal no recuerdo, le puedes pedir un objeto del tipo Location. Podrías tener en el activity 2 variables Location privadas, una para la posición actual y otro para la anterior. Antes de actualizar el valor del actual, guárdalo en la variable anterior.
Si vas a necesitar todos los puntos de la ruta, puedes ir añadiendolos en un ArrayList o, si son muchos, en una sqlite. Hay muchas opciones para hacer eso Solo es cuestión de ver cuál se amolda mejor a lo que necesitas
Podrias poner un ejemplo por favor... Guardando en la sqlite..
Responder Con Cita
  #6  
Viejo 25/02/13, 03:00:51
Avatar de ysuran
ysuran ysuran no está en línea
Miembro del foro
Mensajes: 174
Compra y venta: (2)
 
Fecha de registro: mar 2009
Localización: Valencia
Mensajes: 174
Modelo de smartphone: Pixel 7 Pro
Tu operador: O2
Mencionado: 0 comentarios
Tagged: 0 hilos
Re: Obtener posicion cada minuto

Cita:
Originalmente Escrito por carrobe1390 Ver Mensaje
Podrias poner un ejemplo por favor... Guardando en la sqlite..
Disculpa por la tardanza pero es que he estado fuera todo el fin de semana. Mañana por la mañana tendré el código a mano. Recorto el ejemplo que te haga falta y te lo paso por aquí (te adjuntaré las clases java también por si acaso)
Responder Con Cita
  #7  
Viejo 25/02/13, 03:32:23
Avatar de carrobe1390
carrobe1390 carrobe1390 no está en línea
Miembro del foro
Mensajes: 47
 
Fecha de registro: feb 2013
Localización: Guayaquil
Mensajes: 47
Modelo de smartphone: Samsung Galaxy S3
Versión de ROM: 4.1.2
Tu operador: Claro
Mencionado: 0 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por ysuran Ver Mensaje
Disculpa por la tardanza pero es que he estado fuera todo el fin de semana. Mañana por la mañana tendré el código a mano. Recorto el ejemplo que te haga falta y te lo paso por aquí (te adjuntaré las clases java también por si acaso)
Graciias... me has salvado la vida...
Responder Con Cita
  #8  
Viejo 25/02/13, 12:18:26
Avatar de ysuran
ysuran ysuran no está en línea
Miembro del foro
Mensajes: 174
Compra y venta: (2)
 
Fecha de registro: mar 2009
Localización: Valencia
Mensajes: 174
Modelo de smartphone: Pixel 7 Pro
Tu operador: O2
Mencionado: 0 comentarios
Tagged: 0 hilos
Vamos a ver, por partes =)
de la función esa tuya de posicion(), yo sacaría todo el tema este de la configuración del mapa (donde le dices que quieres los controles de zoom, que habilite la brújula, que habilite tu posición, etc) para ejecutarlo sólo una vez y dentro de la función de posición dejaría sólo el código que necesitas para recuperar los datos que quieres de posición ya que esa función la vas a ejecutar en un timer cada minuto y no es necesario que configure el mapa cada vez.
Dentro de esa función, pondría una llamada también al método que te crees para insertar esa posición en una bbdd sqlite. Ese método es muy muy sencillo. Se te quedaría una cosa así:

public void insertLocation(float lat, float long){
ContentValues iniValues = new ContentValues();
iniValues.put("latitud", lat);
iniValues.put("longitud", long);

mDB.insert("posiciones", null, iniValues);
}

donde mDB es una instancia de un SQLiteDatabase. Encontrarás facilmente googleando un poco un tuto sobre cómo crear tu clase db helper para usar sqlite. En esencia no es más que una clase en la que implementas la mini-base de datos definiendo sus tablas y los métodos que consideres necesarios para insertar o consultar los datos.
Como te dije, voy a adjuntar un ejemplo de un db helper sencillito. Verás que en una de las funciones creo un objeto del tipo Punto. Tendrás que crearte la clase ya que ese objeto no existe =). Espero que te sirva!
Archivos Adjuntos
Tipo de Archivo: zip EjemploSQliteHelper.java.zip (967 Bytes, 1 visitas)
Responder Con Cita
  #9  
Viejo 25/02/13, 17:38:04
Avatar de carrobe1390
carrobe1390 carrobe1390 no está en línea
Miembro del foro
Mensajes: 47
 
Fecha de registro: feb 2013
Localización: Guayaquil
Mensajes: 47
Modelo de smartphone: Samsung Galaxy S3
Versión de ROM: 4.1.2
Tu operador: Claro
Mencionado: 0 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por ysuran Ver Mensaje
Vamos a ver, por partes =)
de la función esa tuya de posicion(), yo sacaría todo el tema este de la configuración del mapa (donde le dices que quieres los controles de zoom, que habilite la brújula, que habilite tu posición, etc) para ejecutarlo sólo una vez y dentro de la función de posición dejaría sólo el código que necesitas para recuperar los datos que quieres de posición ya que esa función la vas a ejecutar en un timer cada minuto y no es necesario que configure el mapa cada vez.
Dentro de esa función, pondría una llamada también al método que te crees para insertar esa posición en una bbdd sqlite. Ese método es muy muy sencillo. Se te quedaría una cosa así:

public void insertLocation(float lat, float long){
ContentValues iniValues = new ContentValues();
iniValues.put("latitud", lat);
iniValues.put("longitud", long);

mDB.insert("posiciones", null, iniValues);
}

donde mDB es una instancia de un SQLiteDatabase. Encontrarás facilmente googleando un poco un tuto sobre cómo crear tu clase db helper para usar sqlite. En esencia no es más que una clase en la que implementas la mini-base de datos definiendo sus tablas y los métodos que consideres necesarios para insertar o consultar los datos.
Como te dije, voy a adjuntar un ejemplo de un db helper sencillito. Verás que en una de las funciones creo un objeto del tipo Punto. Tendrás que crearte la clase ya que ese objeto no existe =). Espero que te sirva!
Talvez sea un poco abusivo de mi parte pero es que no tengo mucho conocimiento acerca de esto y algo estoi haciendo mal en el proyecto si lo podrias revisar y decirme en k estoi fallando? te agradeceria mucho en dond mainmapa es dond realizo la localizacion de los puntos con el mapa...
Archivos Adjuntos
Tipo de Archivo: rar ProyectoJeWc.rar (978.7 KB, 1 visitas)
Responder Con Cita
  #10  
Viejo 26/02/13, 11:08:46
Avatar de asavelas
asavelas asavelas no está en línea
Usuario muy activo
Mensajes: 549
 
Fecha de registro: feb 2013
Mensajes: 549
Modelo de smartphone: nexus 4
Versión de ROM: CM 10.2 + Semaphore kernel
Tu operador: Pepephone
Mencionado: 4 comentarios
Tagged: 0 hilos
Yo veo mas fácil poner en la activity del mapa un locationlistener cada 60 segundos y en el onlocationupdate pasar la ubicacion actual a la anterior y la nueva a la actual como te ha dicho el compañero y luego centrar el mapa en la actual
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 20:45:22 (GMT +1)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007