Jak mogę usunąć wartości Z w PostGIS?

9

Jak pozbyć się wymiaru Z w PostGIS? W szczególności mam niektóre, MultiPolygonZktóre chcę skopiować do innej tabeli jako MultiPolygons. Nie dbam o wartości Z - można je po prostu wyrzucić.

Musi być prosty sposób, ale nie udało mi się znaleźć żadnych funkcji, które to robią ... Wszelkie wskazówki są mile widziane!

Xavier Holt
źródło

Odpowiedzi:

12

Powinieneś być w stanie to zrobić za pomocą ST_Force2D

Oto przykład z instrukcji:

SELECT  ST_AsEWKT(ST_Force2D('POLYGON((0 0 2,0 5 2,5 0 2,0 0 2),(1 1 2,3 1 2,1 3 2,1 1 2))'));

                  st_asewkt
----------------------------------------------
 POLYGON((0 0,0 5,5 0,0 0),(1 1,3 1,1 3,1 1))

Możliwe może być również użycie operatora CAST (w zależności od pewnych ukrytych, niezbyt dobrze udokumentowanych reguł), ale wybrałbym tę funkcję.

BradHards
źródło
Doskonały! Musiałem użyć starej nazwy ( ST_Force_2D), ponieważ korzystam z PostGIS <2.1, ale wszystko było w instrukcji. I wiedział, że funkcja musiała istnieć gdzieś ... Dzięki pęczek!
Xavier Holt