Konwersja geometrii 3-wymiarowej na 2-wymiarową

12

Mam tabelę punktów, w której kolumna geometrii zawiera wartości 3 i 2 wymiarów. Chcę przekonwertować tę trójwymiarową geometrię na 2 wymiary. Czy w PostGIS jest jakaś funkcja? Pomóż mi rozwiązać ten problem.

Pozdrawiam Sreesha.TA

Sreesha
źródło
Chciałbym użyć ST_Force2D, ale mówi: funkcja st_force2d (geometria) nie istnieje Czy masz jakiś pomysł? Dzięki, Laszlo
Laszlo

Odpowiedzi:

9

Jeśli nie chcesz dodawać nowej kolumny, możesz również wykonać następujące czynności:

ALTER TABLE your_geo_table  
  ALTER COLUMN geom TYPE geometry(YOUR_GEOM_TYPE, YOUR_EPSG) 
    USING ST_Force_2D(geom);

Na przykład:

ALTER TABLE your_geo_table  
  ALTER COLUMN geom TYPE geometry(MULTILINESTRING, 4326) 
    USING ST_Force_2D(geom);
Thomas B.
źródło
Wypróbowałem tę sugestię na bazie danych, którą mam (w moim przypadku miałem podobny problem, ale chciałem wymusić, aby punkty były 3D), ale pojawia się ten błąd: BŁĄD: funkcja st_force_3d (geografia) nie istnieje LINIA 3 : USING ST_Force_3D (geom); ^ WSKAZÓWKA: Żadna funkcja nie pasuje do podanych nazw i typów argumentów. Może być konieczne dodanie rzutowania typu jawnego. ********** Błąd ********** BŁĄD: funkcja st_force_3d (geografia) nie istnieje Stan SQL: 42883 Wskazówka: Żadna funkcja nie pasuje do podanej nazwy i typów argumentów. Może być konieczne dodanie rzutowania typu jawnego. Postać: 89
Andrea Grandi,
Chyba dlatego, że ST_Force3D działa z typem geometrii, a nie z typem geograficznym.
Thomas B,