phpMyAdmin
 sql >> Database >  >> Database Tools >> phpMyAdmin

PHP per recuperare i tipi di geografia PostGIS

È il formato wkb che desideri?

select ST_AsWKB('geog') from locations

Ma perché vuoi estrarre prima i dati per eseguire il calcolo della distanza?

/Nicklas

Aggiorna

Ok

Non so perché non ottieni un risultato corretto sulle tue domande. Sono troppo cattivo in php. Immagino che il risultato per qualche motivo venga inserito in un tipo di dati che non è corretto. Voglio dire da ST_AsText dovresti solo ottenere una stringa, niente di più strano di quello.

Ma per prendere la distanza non dovresti tirare fuori i punti. Fai un self join per farlo. Questo è ciò che fai sempre quando usi PostGIS e confronti diverse geometrie in un'unica tabella.

Diciamo che la prima area geografica ha id=1 e la seconda ha id=2 la query potrebbe essere qualcosa del tipo:

SELECT ST_Distance(a.the_geog, b.the_geog) as dist 
from locations a, locations b WHERE a.id=1 and b.id = 2;

Se vuoi la distanza di tutti i punti (o qualunque essa sia) dal punto con id=1 potresti scrivere:

SELECT  ST_Distance(a.the_geog, b.the_geog) as dist
from locations a inner join locations b on a.id != b.id WHERE a.id=1;

e così via.

Sarà molto più efficace.

/Nicklas