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

Respuesta
 
Herramientas
  #1  
Viejo 23/02/13, 06:36:41
Array

[xs_avatar]
carrobe1390 carrobe1390 no está en línea
Miembro del foro
 
Fecha de registro: feb 2013
Localización: Guayaquil
Mensajes: 47
Modelo de smartphone: Samsung Galaxy S3
Tu operador: Claro
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
Array

[xs_avatar]
ysuran ysuran no está en línea
Miembro del foro
· Votos compra/venta: (2)
 
Fecha de registro: mar 2009
Localización: Valencia
Mensajes: 174
Modelo de smartphone: Pixel 7 Pro
Tu operador: O2
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
Array

[xs_avatar]
carrobe1390 carrobe1390 no está en línea
Miembro del foro
 
Fecha de registro: feb 2013
Localización: Guayaquil
Mensajes: 47
Modelo de smartphone: Samsung Galaxy S3
Tu operador: Claro
 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
Array

[xs_avatar]
ysuran ysuran no está en línea
Miembro del foro
· Votos compra/venta: (2)
 
Fecha de registro: mar 2009
Localización: Valencia
Mensajes: 174
Modelo de smartphone: Pixel 7 Pro
Tu operador: O2
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
Array

[xs_avatar]
carrobe1390 carrobe1390 no está en línea
Miembro del foro
 
Fecha de registro: feb 2013
Localización: Guayaquil
Mensajes: 47
Modelo de smartphone: Samsung Galaxy S3
Tu operador: Claro
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
Array

[xs_avatar]
ysuran ysuran no está en línea
Miembro del foro
· Votos compra/venta: (2)
 
Fecha de registro: mar 2009
Localización: Valencia
Mensajes: 174
Modelo de smartphone: Pixel 7 Pro
Tu operador: O2
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
Array

[xs_avatar]
carrobe1390 carrobe1390 no está en línea
Miembro del foro
 
Fecha de registro: feb 2013
Localización: Guayaquil
Mensajes: 47
Modelo de smartphone: Samsung Galaxy S3
Tu operador: Claro
 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
Array

[xs_avatar]
ysuran ysuran no está en línea
Miembro del foro
· Votos compra/venta: (2)
 
Fecha de registro: mar 2009
Localización: Valencia
Mensajes: 174
Modelo de smartphone: Pixel 7 Pro
Tu operador: O2
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
Array

[xs_avatar]
carrobe1390 carrobe1390 no está en línea
Miembro del foro
 
Fecha de registro: feb 2013
Localización: Guayaquil
Mensajes: 47
Modelo de smartphone: Samsung Galaxy S3
Tu operador: Claro
 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
Array

[xs_avatar]
asavelas asavelas no está en línea
Usuario muy activo
 
Fecha de registro: feb 2013
Mensajes: 549
Modelo de smartphone: nexus 4
Tu operador: Pepephone
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   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 19:40:20 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /