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

Sådan konverteres punkttekst til geometri

Du kan også bruge ST_MakePoint, som sandsynligvis er renere, da du ikke behøver at sammenkæde bredde- og længdegradsværdier som tekst. Brug det sammen med ST_SetSrid til at sætte koordinatreferencesystemet til 4326, f.eks.

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

returnerer en geometritype. Bemærk rækkefølgen er lon/lat (x/y), en årsag til masser af forvirring, på grund af folk, der siger lat/lon i daglig tale.

ST_GeomFromText er generelt mere nyttigt, når du har en geometri i formatet velkendt tekst (WKT), f.eks.

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

Hvis dine data faktisk er i formen ((-79.4609576808001,43.9726680183837)), og du ikke ønsker at opdele dem som jeg foreslog ovenfor, er det korrekte format at bruge med ST_GeomFromText for et punkt:

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

hvor SRID er valgfrit, men anbefales.

Se http://en.wikipedia.org/wiki/Well_Known_Text for mere information.



  1. Hæver barren på MySQL, MariaDB, PostgreSQL og MongoDB Management

  2. Synkronisering af PL/SQL procedure. Hvordan garanterer man udførelse af proceduren kun én ad gangen?

  3. Sådan kalder du Oracle-funktion, som har SYS_REFCURSOR som OUT-parameter

  4. Forhindre indsættelsesudløser