2012-03-05 20 views
8
'43.005895','-71.013202' 

Tratar de utilizar:tipo de datos a la tienda longitud/latitud en MySQL

INSERT INTO table(fanDetLocZip, fanDetLocCity, fanDetLocState, fanDetLocLat, fanDetLocLong, fanDetLocTZ, fanDetLocDST) 
VALUES(00210, 'Portsmouth', 'NH', '43.005895', '-71.013202', -5, 1); 

Actualmente estoy usando el tipo de datos SPATIAL, GEOMETRY.

Su produce errores como:

no puede obtener la geometría del objeto de datos que envía al campo de geometría

Todos los valores tienen 2 dígitos, y después de 6 cifras decimales decimal. ¿Cómo almaceno esto en mysql?

error que consigo cuando uso:
INSERT INTO Table(fanDetLocZip, fanDetLocCity, fanDetLocState, fanDetLocLatLong, fanDetLocTZ, fanDetLocDST)
VALUES(00210, 'Portsmouth', 'NH', point(43.005895,-71.013202), -5,1)

error de archivo: img5

+0

¿Se puede agregar la definición de la tabla (instrucción 'CREATE')? ¿Qué columna es de tipo 'GEOMETRÍA'? –

+0

fanDetLocLat, fanDetLocLong – CodeTalk

+0

Eso es dos columnas. ¿Tiene una columna de tipo GEOMETRÍA o PUNTO? –

Respuesta

17

Puede utilizar POINT() para almacenar en una columna de tipo GEOMETRY o POINT:

POINT(43.005895, -71.013202) 

Si el La columna de geometría se llama geom, puede usar esto:

INSERT INTO table 
    (..., geom, ...) 
    VALUES 
    (..., POINT(43.005895, -71.013202), ...) 

Si desea mostrar los datos almacenados, se pueden utilizar las funciones X() and Y():

SELECT X(geom) AS x, Y(geom) AS y 
FROM table 
+0

Esto es útil, supongo que simplemente no agregué el punto(). Nunca he usado valores de geometría antes. Gracias ypercube! – CodeTalk

+0

Cuando uso: INSERT INTO Table (fanDetLocZip, fanDetLocCity, fanDetLocState, fanDetLocLatLong, fanDetLocTZ, fanDetLocDST) VALUES (00210, 'Portsmouth', 'NH', punto (43.005895, -71.013202), - 5,1) ingresa el valor extraño. Vea la captura de pantalla de arriba. – CodeTalk

+0

@ user975947: mira mi edición anterior. –

2

¿Por qué no se utiliza en su lugar un tipo flotador para su latitud/longitud?

Float (10,6) 
+3

float no es bueno para almacenar lattitude y longtitude. El doble es el mejor tipo de datos para almacenar Lattitude/Longtitude. [Leer la discusión completa] (http://stackoverflow.com/questions/20657172/float-and-double-datatype-is-good-to-store-lattitude-and-longtitude) – ArunRaj

Cuestiones relacionadas