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

Nuevas funciones con GIS ???

Estas en el tema de Nuevas funciones con GIS ??? en el foro de Mysql en Foros del Web. En Mysql 5 hay nuevas funciones sobre GIS="Geographic Information Systems". Por ejemplo GeomfromText, Area, Polygon. También hay tipos de datos. Cita: CREATE TABLE address ( ...
  #1 (permalink)  
Antiguo 23/05/2008, 10:54
Avatar de DBMark  
Fecha de Ingreso: mayo-2008
Ubicación: Oxford
Mensajes: 35
Antigüedad: 15 años, 11 meses
Puntos: 6
Nuevas funciones con GIS ???

En Mysql 5 hay nuevas funciones sobre GIS="Geographic Information Systems". Por ejemplo GeomfromText, Area, Polygon. También hay tipos de datos.
Cita:
CREATE TABLE address (
address CHAR(80) NOT NULL,
address_loc POINT NOT NULL,
PRIMARY KEY(address),
SPATIAL KEY(address_loc)
);
Bueno, es un tema muy interesante, pero falta muchos enlaces sobre este tema. Un poco en dev.mysql.com/doc/refman/5.1/en/polygon-property-functions.html
¿Conoce alguien enlaces interesantes sobre el tema de GIS y Mysql?

Gracias, u saludos.
  #2 (permalink)  
Antiguo 24/05/2008, 12:58
Avatar de DBMark  
Fecha de Ingreso: mayo-2008
Ubicación: Oxford
Mensajes: 35
Antigüedad: 15 años, 11 meses
Puntos: 6
Respuesta: Nuevas funciones con GIS ???

Al investigar, me entere de que no se necesite funciones de GIS para calcular (por ejemplar) distancias, porque tenemos ya los de cos y sin. Solo se necesitan valores de latitud y longitud, pero en radianes.

Cita:
mysql> SELECT ACOS(SIN(@lat_A) * SIN(@lat_B)
-> + COS(@lat_A) * COS(@lat_B)
-> * COS(@long_B - @long_A)) * 3956 AS distance;
+-----------------+
| distance |
+-----------------+
| 161.70380719616 |
+-----------------+
Este ejemplar es por Jay Pipes y es la distancia (en millas) entre Zip Code '10001' and '21236' (approx New York City and Baltimore, Maryland). 3956 es el radio del mundo en millas; para conocer distancia en kilometros supongo que se pueda usar 6367 en vez de 3956.

Otra posibilidad - devolver sitios dentro de 5 millas lejos (disculpame mi espanol!)

Cita:
Similarly, if you want to find zip codes which fall within a specified radius, you could transpose the equation into the WHERE expression, here to find zips in a test database within 5 miles of the ZCTA '21236':

mysql> SELECT
-> x2.zcta
-> FROM ZCTA x1, ZCTA x2
-> WHERE x1.zcta = '21236'
-> AND ACOS(SIN(x1.lat_radians) * SIN(x2.lat_radians)
-> + COS(x1.lat_radians) * COS(x2.lat_radians)
-> * COS(x2.long_radians - x1.long_radians)) * 3956 <= 5;
+-------+
| zcta |
+-------+
| 21057 |
| 21128 |
| 21162 |
| 21206 |
| 21214 |
| 21234 |
| 21236 |
| 21237 |
+-------+
8 rows in set (0.13 sec)
El autor Jay Pipes tiene mas expicaciones sobre GIS en su libro Pro Mysql, pero se puede buscar textos de Jay Pipes por el internet, claro.
Bueno sigo sin exito en conseguir mas datos sobre las nuevas funciones (salvo las paginas de dev.mysql) pero estoy contento con los ejemplares arriba.

Saludos
Mark
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 23:53.