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

Cercando di utilizzare:Tipo di dati to Store latitudine/longitudine in Mysql

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

Attualmente sto usando il tipo di dati SPATIAL, GEOMETRY.

La sua mi dà errori come:

Non può ottenere l'oggetto della geometria da dati inviati al campo GEOMETRIA

Tutti i valori sono 2 cifre, e 6 posti decimale dopo decimale. Come posso archiviare questo in mysql?

errore ottengo quando uso:
INSERT INTO Table(fanDetLocZip, fanDetLocCity, fanDetLocState, fanDetLocLatLong, fanDetLocTZ, fanDetLocDST)
VALUES(00210, 'Portsmouth', 'NH', point(43.005895,-71.013202), -5,1)

Errore Image: img5

+0

È possibile aggiungere la definizione della tabella (istruzione 'CREATE')? Quale colonna è di tipo 'GEOMETRIA'? –

+0

fanDetLocLat, fanDetLocLong – CodeTalk

+0

Ecco due colonne. Hai una colonna di tipo GEOMETRY o POINT? –

risposta

17

È possibile utilizzare POINT() per memorizzare in una colonna di tipo GEOMETRY o POINT:

POINT(43.005895, -71.013202) 

Se il La colonna della geometria è denominata geom, è possibile utilizzare questo:

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

Se si desidera visualizzare i dati memorizzati, è possibile utilizzare le funzioni X() and Y():

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

Questo è utile, immagino di non aver aggiunto point(). Non hai mai usato i valori geometrici prima. Grazie a ypercube! – CodeTalk

+0

Quando utilizzo: INSERT INTO Table (fanDetLocZip, fanDetLocCity, fanDetLocState, fanDetLocLatLong, fanDetLocTZ, fanDetLocDST) VALORI (00210, 'Portsmouth', 'NH', punto (43.005895, -71.013202), - 5,1) immette il valore strano. Vedi screenshot sopra. – CodeTalk

+0

@ user975947: vedere la mia modifica sopra. –

2

Perché non si utilizza invece un tipo di galleggiante per il lat/lungo?

Float (10,6) 
+3

float non è buono per memorizzare lattitudine e longitudine. Double è il miglior tipo di dati per memorizzare lattitude/longtitude. [Leggi la discussione completa] (http://stackoverflow.com/questions/20657172/float-and-double-datatype-is-good-to-store-lattitude-and-longtitude) – ArunRaj