Mysql
 sql >> Database >  >> RDS >> Mysql

Utilizzo di MySQL 'POINT' e PHP per inserire punti di latitudine e longitudine attraverso un modulo

Hai bisogno di qualcosa come

SET point_LatLon = GeomFromText('POINT(45.1234 123.4567)')

in cui il parametro che passi a GeomFromText è una stringa di caratteri come

POINT(45.1234 123.4567)

Ho scoperto che questo tipo di costrutto funziona bene se ho due parametri numerici, dove ? sono i segnaposto per quei parametri lat e lon. La funzione CONCAT mette insieme la stringa di testo richiesta.

GeomFromText( CONCAT('POINT(', ?, ' ', ?, ')') ) 

Succede che non puoi creare un indice spaziale in una tabella InnoDB nelle versioni di MySQL precedenti alla versione 5.7.4 (che non è ancora generalmente disponibile). Se desideri un indice spaziale, dovrai utilizzare il metodo di accesso MyISAM per la tua tabella. Questo è un po' una seccatura.

Ecco un articolo sull'utilizzo del geospaziale per questo scopo. http://www.plumislandmedia.net/mysql/ using-mysqls-geospatial-extension-location-finder/