|
||
|
![]() |
![]() |
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
|
||||
|
||||
Punto GPS en un cuadrante
Hola a todos,
hace poco que estoy con android y hasta ahora habia aprendido bastante leyendo, pero me veo en la obligacion de preguntar....jejeje.. tengo lo siguiente, desde el gps obtengo un punto, y yo tengo definidos(en papel) cierta cantidad de cuadrantes(pueden ser 3,4,7,9,etc)... cual es la manera mas sencilla de saber en que cuadrante esta ese punto? Desde ya, muchas gracias. |
|
#2
|
||||
|
||||
Por lo que he entendido lo que quieres es que el móvil cuando obtenga un punto te diga "Cuadrante número 5". ¿Es eso?
Pues si es eso una de las formas de hacerlo (seguro que hay muchas más formas más eficientes, pero es la primera que se me ocurre) es crearte un array de cuadrantes donde cada cuadrante tenga su latitud y longitud de inicio y fin respectivamente. Y al obtener el punto recorrer el array buscando el punto. |
#3
|
||||
|
||||
si, es eso....
y mas o menos lo habia pensado como lo planteas, preguntando con if, else...hasta encontrar si esta dentro del cuadrante... el tema es que se me hace muy largo por ejemplo, si llego a tener 10 0 15 cuadrantes, ya que por cada cuadrante, vas a tener 4 posiciones(4 lat, y 4 lon)...por eso queria ver una forma mas "eficiente", si es que existe... sino, a teclear se ha dicho...jejeje |
#4
|
||||
|
||||
1) Tal como lo veo yo, solo hace falta una latitud y una logitud por cuadrante, no? El fin de uno será el inicio del siguiente, y así sucesivamente, cierto? En ese caso en espacio solo tendrías un coste de 2n datos (n latitudes y n longitudes).
2) En cuanto a la búsqueda, puedes hacer una búsqueda dicotómica. En ese caso tendrías un coste de n/2 en cada paso de búsqueda para las latitudes y lo mismo para las longitudes. Yo lo veo bastante eficiente en cuanto a tiempo y espacio, no sé que opináis. |
#5
|
||||
|
||||
cada cuadrante tiene 4 puntos(lat,lon), y si busco un solo punto... pongo un mapa de ejemplo..
![]() |
#6
|
||||
|
||||
Si los cuadrantes son arbitrarios y no son muchos, lo más fácil es comprobarlos uno a uno, que viene a ser lo que te proponían desde un principio.
Por ahorrarte alguna línea de código, Android tiene la clase Rect y RectF que te permite definir superficies rectangulares y métodos que te dicen si un punto está dentro de ese rectángulo o no. No hacen falta pero te liarás menos con las cuentas y el código es más bonito aunque menos eficiente. Dado que parece que vas a definir los cuadrantes "a mano", define cada uno como un objeto Rect, los metes en un array, colección o cualquier cosa que puedas meter en un bucle for para ir viendo si el punto que te interesa está o no en cada uno.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
|
#7
|
||||
|
||||
vale, gracias por sus respuestas... verificar uno a uno es lo que tenia pensado desde un ppcio y asi parece que sera, la idea era saber si existia alguna otra forma de hacerlo, mas que ahorrarse codigo, era que fuera mas eficiente...
entonces, a meter mano ahora...jejeje... gracias a todos. |
![]() |
![]() |
||||||
|