[Mapserver-DE] Shape Daten in Postgres laden
Frank Koormann
frank.koormann at intevation.de
Don Sep 28 14:58:31 CEST 2006
Hallo,
* J Wagner <jj.wag at gmx.de> [060928 12:18]:
> >>das kannst Du auslesen über "SELECT astext(the_geom) from TABELLE ......"
> >>und dann in das Array einlesen. Trotz des kanonischen Formates kann man
> >>übrigens auch "menschenlesbares" in die Tabelle einlesen, also z.B. UPDATE
> >>strasse_2004_e SET the_geom='MULTILINESTRING((2678809.96180066
> >>5786038.55183228,2678555.66714143 5786082.59514907))' WHERE gid=359585;
>
> vielen Dank für die Info, das Auslesen funktioniert prima. Leider kommt beim
> aktualisieren (update) folgende Fehlermeldung:
>
> ERROR: new row for relation "fussweg" violates check constraint
> "enforce_srid_the_geom"
>
> Was könnte das bedeuten?
AddGeometryColumn legt sogenannte CheckConstraints für eine entsprechende
Tabelle an, um die inhaltliche Konsistenz der Daten in einer Tabelle
sicher zu stellen. Bei jedem INSERT/UPDATE werden diese Constraints dann
überprüft und ggf. die Aktion abgebrochen.
Typisch sind:
psql> \d wirtschaftsweg
[...]
Check-Constraints:
»enforce_dims_the_geom« CHECK (ndims(the_geom) = 2)
»enforce_geotype_the_geom« CHECK (geometrytype(the_geom) = 'MULTILINESTRING'::text OR the_geom IS NULL)
»enforce_srid_the_geom« CHECK (srid(the_geom) = 31466)
D.h. es wird sichergestellt, dass Geometrien
- 2-dimensional,
- vom Typ MULTILINESTRING oder leer,
- in der durch SRID 31466 identifizierten Projektion
sind.
Im Falle von
SET the_geom='MULTILINESTRING((2678809.9 5786038.5,2678555.6 5786082.5))'
ist nicht klar, ob das nun SRID 31466 ist. Also explizit mit angeben:
SET the_geom=GeomFromText('MULTILINESTRING(( .... ))',31466)
oder
SET the_geom=GeomFromEWKT('SRID=31466;MULTILINESTRING(( .... ))')
PostGIS versteht auch
SET the_geom='SRID=31466;MULTILINESTRING(( .... ))'
aber die beiden erstgenannten sind verständlicher.
Beste Grüße,
Frank
--
Frank Koormann <frank.koormann at intevation.de>
PostGIS Support (http://intevation.de/services/gis/postgis.de.html)
Professioneller Service um Freie Software (http://intevation.de/)
FreeGIS Projekt (http://freegis.org/)
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)