PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come convertire il testo del punto in geometria

Puoi anche usare ST_MakePoint che è probabilmente più pulito in quanto non devi concatenare i valori di latitudine e longitudine come testo. Usalo insieme a ST_SetSrid per impostare il sistema di riferimento delle coordinate su 4326, ad esempio,

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

restituirà un tipo di geometria. Nota che l'ordine è lon/lat (x/y), motivo di molta confusione, a causa delle persone che dicono lat/lon nel linguaggio quotidiano.

ST_GeomFromText è generalmente più utile quando si dispone di una geometria in formato WKT (Testo noto), ad es.

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

Se i tuoi dati sono effettivamente nel modulo ((-79.4609576808001,43.9726680183837)) e non vuoi dividerli come ho suggerito sopra, il formato corretto da usare con ST_GeomFromText per un punto è:

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

dove lo SRID è facoltativo, ma consigliato.

Vedi http://en.wikipedia.org/wiki/Well_Known_Text per ulteriori informazioni.