Konvertierung von dreidimensionaler Geometrie in zweidimensionale

12

Ich habe eine Punkttabelle, in der die Geometriespalte sowohl dreidimensionale als auch zweidimensionale Werte enthält. Ich möchte diese dreidimensionale Geometrie in zweidimensionale konvertieren. Gibt es eine Funktion in PostGIS? Bitte helfen Sie mir, dieses Problem zu lösen.

Grüße Sreesha.TA

Sreesha
quelle
Ich möchte ST_Force2D verwenden, aber es heißt: Funktion st_force2d (Geometrie) existiert nicht Haben Sie eine Idee? Vielen Dank, Laszlo
Laszlo

Antworten:

15

http://postgis.net/docs/manual-2.0/ST_Force_2D.html

SELECT ST_Force_2D (the_geom) FROM ...

Aktualisieren Sie Ihre vorhandene Tabelle

 
ALTER TABLE your_geo_table ADD geom2d geometry;
UPDATE your_geo_table SET geom2d = ST_Force_2D(the_geom);

Siehe auch http://postgis.net/docs/

Simplexio
quelle
1
Verwenden Sie ST_Force2Danstelle von ST_Force_2d. ST_Force_2dDie Unterschrift war in 2.1.0 veraltet.
Jgrocha
9

Wenn Sie keine neue Spalte hinzufügen möchten, können Sie auch Folgendes tun:

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

Beispielsweise:

ALTER TABLE your_geo_table  
  ALTER COLUMN geom TYPE geometry(MULTILINESTRING, 4326) 
    USING ST_Force_2D(geom);
Thomas B.
quelle
Ich habe diesen Vorschlag in einer Datenbank ausprobiert, die ich habe (in meinem Fall hatte ich ein ähnliches Problem, aber ich wollte die Punkte in 3D erzwingen), aber ich erhalte den folgenden Fehler: FEHLER: Funktion st_force_3d (Geografie) existiert nicht LINE 3 : USING ST_Force_3D (geom); ^ TIPP: Keine Funktion entspricht dem angegebenen Namen und den angegebenen Argumenttypen. Möglicherweise müssen Sie explizite Typumwandlungen hinzufügen. ********** Fehler ********** FEHLER: Funktion st_force_3d (Geografie) existiert nicht SQL-Status: 42883 Hinweis: Keine Funktion entspricht dem angegebenen Namen und den angegebenen Argumenttypen. Möglicherweise müssen Sie explizite Typumwandlungen hinzufügen. Charakter: 89
Andrea Grandi
Ich denke, das liegt daran, dass ST_Force3D mit dem Geometrietyp und nicht mit dem Geografietyp arbeitet.
Thomas B