PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment convertir un texte de point en géométrie

Vous pouvez également utiliser ST_MakePoint qui est probablement plus propre car vous n'avez pas à concaténer les valeurs de latitude et de longitude sous forme de texte. Utilisez-le en conjonction avec ST_SetSrid pour définir le système de référence de coordonnées sur 4326, par exemple,

Select ST_SetSrid(ST_MakePoint(lon, lat),4326) from sometable;

renverra un type de géométrie. Notez que l'ordre est lon/lat (x/y), une cause de beaucoup de confusion, car les gens disent lat/lon dans le langage courant.

ST_GeomFromText est généralement plus utile lorsque vous avez une géométrie au format texte connu (WKT), par exemple,

Select ST_GeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))', 4326);

Si vos données sont en fait sous la forme ((-79.4609576808001,43.9726680183837)) et que vous ne voulez pas les diviser comme je l'ai suggéré ci-dessus, le format correct à utiliser avec ST_GeomFromText pour un point est :

Select ST_GeomFromText('POINT(-79.4609576808001 43.9726680183837)', 4326)

où le SRID est facultatif, mais recommandé.

Voir http://en.wikipedia.org/wiki/Well_Known_Text pour plus d'informations.