2010-06-10 10 views
21

Ich habe eine Tabelle, wo eine der Säulen ist eine Geometriespalte the_geom für Polygone mit einem SRID. Ich habe eine neue Spalte in derselben Tabelle mit genau denselben Geometriedaten wie the_geom hinzugefügt.Wie ändert man die SRID der Geometriespalte?

Diese neue Spalte hat den Namen the_geom4258, weil ich ihre SRID auf 4258 festlegen möchte. Wie wird die SRID der Geometrie in ein anderes Koordinatensystem geändert? Ist es genug, um die folgende Abfrage anwenden:

UPDATE table SET the_geom4258=ST_SetSRID(the_geom4258,4258); 

Antwort

26

Sie sollten die ST_Transform-Funktion verwenden. Nutzen Sie auch die Funktion AddGeometryColumn Ihre neue Spalte zu erstellen, alle notwendigen Einschränkungen, um sicherzustellen, werden auch geschaffen:

SELECT AddGeometryColumn('table','the_geom4258',4258, 'POLYGON', 2); 

UPDATE table SET the_geom4258 = ST_Transform(the_geom,4258); 

ST_SetSRID setzt nur die Projektion Kennung, sondern Transformation nicht wirklich die Geometrien.

+0

Ihre answere ist genau das, was ich brauche. Also vielen Dank. Es ist nur eine kleine Sache, jetzt habe ich Fehler: „ERROR: AddToPROJ4SRSCache: konnte nicht proj4 Zeichenfolge analysieren:‚+ proj = tmerc + lat_0 = 0 + lon_0 = 16,5 + k = 0,999900 + x_0 = 500000 + Y_0 = 0 + ellps = GRS80 + Datum = ETRS89 + Einheiten = m + no_defs': unbekannt elliptische Parameternamen“ Jede Ahnung, was soll ich jetzt richtig zusammen? – Z77

+1

Stellen Sie sicher, dass in der Tabelle "spatial_ref_sys" Ihrer Datenbank ein Datensatz für "srid 4258" vorhanden ist. Wenn ein Datensatz ist, prüfen, ob die Projektionsparameter mit denen übereinstimmen, hier: http://spatialreference.org/ref/epsg/4258/postgis/ – amercader

+0

OK! Ich bin glücklich Mädchen, alle Antworten, die ich hier finden kann :) – Z77

Verwandte Themen