Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

guardar coordenadas en mysql

Estas en el tema de guardar coordenadas en mysql en el foro de Mysql en Foros del Web. Hola necesitaria guardar la longitud y altitud en mysql pero no se que tipo de campo deberia crear para ello, realmente necesito no voy a ...
  #1 (permalink)  
Antiguo 25/01/2016, 05:50
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 6 meses
Puntos: 10
guardar coordenadas en mysql

Hola necesitaria guardar la longitud y altitud en mysql pero no se que tipo de campo deberia crear para ello, realmente necesito no voy a usar mucho estos datos solo para saber la ubicacion, la version que uso es 5.1.73.
saludos
  #2 (permalink)  
Antiguo 25/01/2016, 05:57
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: guardar coordenadas en mysql

MySQL cuenta con tipos de datos espaciales, que son los que se usan para este tipo de cosas.
Aunque para manipularlos debes meterte en el uso de las funciones espaciales.

https://dev.mysql.com/doc/refman/5.7...xtensions.html
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 25/01/2016, 06:25
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 6 meses
Puntos: 10
Respuesta: guardar coordenadas en mysql

Hola gracias por tu respuesta no conocia los datos spaciales, creo que como solo necesitaria saber la ubicacion use POINT la consulta fue algo asi:

Código MySQL:
Ver original
  1. INSERT INTO ubicacion(coordenada)VALUES(geomfromtext('point(-333 8999)'))

para recuperar el valor hice una consulta asi:
Código MySQL:
Ver original
  1. SELECT asText(coordenada)FROM ubicacion

El resultado es algo asi:
[BLOB - 38 B]

Partiendo de aqui si el insert y el select estan correcto, como podria extraer la ubicacion de esta cordenada saber la ciudad por ejemplo, tampoco consigo saber si tengo esta ubicacion en mi bd teniendo las coordenadas.
No se si existe algun programa asociado a mysql para saber ubicacion.
Saludos
  #4 (permalink)  
Antiguo 25/01/2016, 06:48
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: guardar coordenadas en mysql

En primer lugar, ten cuidado con los valores que almacenes, ya que puede darte resultados erroneos.
No te olvides que en un geoide no hay rangos mayores de longitud que -180 a 180, ni de latitud fuera de -90 a 90.

Por otro lado, el resultado obtenido en esa segunda función no son los valores de Latitud y Longitud, sino la geometría creada:
Código MySQL:
Ver original
  1. mysql> SELECT asText(geomfromtext('point(-333 8999)'));
  2. +------------------------------------------+
  3. | asText(geomfromtext('point(-333 8999)')) |
  4. +------------------------------------------+
  5. | POINT(-333 8999)                         |
  6. +------------------------------------------+
  7. 1 row in set (0.00 sec)

Lo correcto del valor obtenido dependera de lo bien que lo almacenes (tipo de dato de la columna) y de lo que uses para recuperarlo (interfaz front end).
Además, si lo que quieres es recuperar los valores de latitud y longitud puros, te conviene usar otras funciones que también puedes leer en el manual:
Código MySQL:
Ver original
  1. mysql> SELECT
  2.     ->     ASTEXT(GEOMFROMTEXT('point(-333 8999)')) Geomemtria,
  3.     ->     X(GEOMFROMTEXT('point(-333 8999)')) Longitud,
  4.     ->     Y(GEOMFROMTEXT('point(-333 8999)')) Latitud;
  5. +------------------+----------+---------+
  6. | Geomemtria       | Longitud | Latitud |
  7. +------------------+----------+---------+
  8. | POINT(-333 8999) |     -333 |    8999 |
  9. +------------------+----------+---------+
  10. 1 row in set (0.00 sec)
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 25/01/2016, 07:06
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 6 meses
Puntos: 10
Respuesta: guardar coordenadas en mysql

Gracias gnzsoloyo, probe la ultima consulta que pusistes y en el campo creado por ti geometria me salio esto: [BLOB - 16 B] no se si esto es debido a que no funciona bien. Quizas otra opcion seria guardar latitude y longitude como campos decimales individuales, me estoy haciendo un lio.
Yo solo quiero saber la ubicacion pasandole estas coordenadas algun programa.
saludos
  #6 (permalink)  
Antiguo 25/01/2016, 07:45
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: guardar coordenadas en mysql

¿Qué front estás usando para ejecutar la consulta?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 25/01/2016, 07:49
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 6 meses
Puntos: 10
Respuesta: guardar coordenadas en mysql

Cita:
Iniciado por gnzsoloyo Ver Mensaje
¿Qué front estás usando para ejecutar la consulta?
phpmyadmin
  #8 (permalink)  
Antiguo 25/01/2016, 08:11
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: guardar coordenadas en mysql

Bueno, lo acabo de probar en el phpMyadmin, y a mi me devuelve lo mismo que te mostré arriba.
Recuerdo que ciertas versiones medio viejas de MySQL y del phpMyadmin hacían una conversión a BLOB de datos cuando contenían ciertas cadenas de texto.
¿Qué versión de MySQL y de phpMyadmin es el que tienes instalado?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: campo, coordenadas, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:38.