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

PHP zum Abrufen von PostGIS-Geografietypen

Ist es das gewünschte wkb-Format?

select ST_AsWKB('geog') from locations

Aber warum willst du erst die Daten rausholen um die Distanz zu berechnen?

/Nicklas

Aktualisieren

Okay

Ich verstehe nicht, warum Sie auf Ihre Abfragen kein richtiges Ergebnis erhalten. Ich bin zu schlecht in PHP. Ich würde vermuten, dass das Ergebnis aus irgendeinem Grund in einen Datentyp geschoben wird, der nicht richtig ist. Ich meine, von ST_AsText sollten Sie nur einen String bekommen, nichts weiter seltsames als das.

Aber um auf Distanz zu kommen, sollte man die Punkte nicht herausziehen. Dazu führen Sie einen Selbstbeitritt durch. Das tun Sie ständig, wenn Sie PostGIS verwenden und verschiedene Geometrien in einer einzigen Tabelle vergleichen.

Nehmen wir an, die erste Geographie hat id=1 und die zweite hat id=2, die Abfrage könnte so aussehen:

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

Wenn Sie die Entfernung zu allen Punkten (oder was auch immer) von Punkt mit id=1 wollen, könnten Sie schreiben:

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;

und so weiter.

Das wird sehr viel effektiver sein.

/Nicklas