phpMyAdmin
 sql >> Base de données >  >> Database Tools >> phpMyAdmin

PHP pour récupérer les types de géographie PostGIS

Est-ce le format wkb que vous voulez ?

select ST_AsWKB('geog') from locations

Mais pourquoi voulez-vous d'abord extraire les données pour effectuer le calcul de distance ?

/Nicolas

Mettre à jour

D'accord

Je ne sais pas pourquoi vous n'obtenez pas un bon résultat sur vos requêtes. Je suis trop mauvais en php. Je suppose que le résultat, pour une raison quelconque, est poussé dans un type de données qui n'est pas le bon. Je veux dire à partir de ST_AsText, vous devriez juste obtenir une chaîne, rien de plus étrange que cela.

Mais pour obtenir votre distance, vous ne devriez pas retirer les points. Vous faites une auto-jointure pour le faire. C'est ce que vous faites tout le temps lorsque vous utilisez PostGIS et que vous comparez différentes géométries dans une seule table.

Supposons que la première géographie ait id=1 et que la seconde ait id=2, la requête pourrait ressembler à :

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

Si vous voulez la distance à tous les points (ou quoi que ce soit) à partir du point avec id=1, vous pouvez écrire :

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;

et ainsi de suite.

Ce sera beaucoup plus efficace.

/Nicolas