sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man konverterar punkttext till geometri

Du kan också använda ST_MakePoint som förmodligen är renare då du inte behöver sammanfoga latitud- och longitudvärden som text. Använd den tillsammans med ST_SetSrid för att ställa in koordinatreferenssystemet till 4326, t.ex.

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

returnerar en geometrityp. Observera att ordningen är lon/lat (x/y), en orsak till mycket förvirring, på grund av att folk säger lat/lon i dagligt tal.

ST_GeomFromText är i allmänhet mer användbart när du har en geometri i formatet välkänd text (WKT), t.ex.

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

Om din data faktiskt är i formen ((-79.4609576808001,43.9726680183837)) och du inte vill dela upp den som jag föreslog ovan, är det korrekta formatet att använda med ST_GeomFromText för en punkt:

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

där SRID är valfritt, men rekommenderas.

Se http://en.wikipedia.org/wiki/Well_Known_Text för mer information.



  1. Kolumn 'id' där klausulen är tvetydig

  2. SQL Hämta andra rader från aggregatfunktionen

  3. SQL Server, kan du inte infoga null i primärnyckelfältet?

  4. Replikera Microsoft SQL till andra databaser