Czy jest to format wkb, który chcesz?
select ST_AsWKB('geog') from locations
Ale dlaczego chcesz najpierw pobrać dane, aby obliczyć odległość?
/Nicky
Aktualizacja
Dobrze
Nie wiem, dlaczego nie otrzymujesz prawidłowego wyniku w swoich zapytaniach. Jestem zbyt zły w php. Domyślam się, że wynik z jakiegoś powodu jest wpychany do jakiegoś typu danych, który nie jest właściwy. Mam na myśli, że z ST_AsText powinieneś po prostu otrzymać ciąg znaków, nic bardziej dziwnego niż to.
Ale aby uzyskać dystans, nie powinieneś wyciągać punktów. Aby to zrobić, robisz self-dołączenie. To właśnie robisz przez cały czas, używając PostGIS i porównując różne geometrie w jednej tabeli.
Załóżmy, że pierwsza geografia ma id=1, a druga ma id=2, zapytanie może wyglądać tak:
SELECT ST_Distance(a.the_geog, b.the_geog) as dist
from locations a, locations b WHERE a.id=1 and b.id = 2;
Jeśli chcesz odległość do wszystkich punktów (lub cokolwiek to jest) od punktu o id=1, możesz napisać:
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;
i tak dalej.
To będzie o wiele bardziej efektywne.
/Nicky