[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)