NAS importieren in PostGIS mit ogr2ogr

Hallo PG-Forum,


ich versuche momentan die Testdaten der BKG (Bundesamt für Kartographie und Geodäsie) Dienstleistungszentrum in eine PostGIS Datenbank zu importieren.


Ich bin den Tutorials gefolgt die ich finden konnte und hab die angegeben Skripte unter Ubuntu 12.04 auch ausgeführt. (PostGIS 1.5, ogr2ogr lib 2.0)


createdb -U postgres -h localhost postgis_template


psql -U postgres -h localhost -d postgis_template -f /usr/share/postgresql/9.1/contrib/postgis-1.5/postgis.sql


psql -U postgres -h localhost -d postgis_template -f /usr/share/postgresql/9.1/contrib/postgis-1.5/spatial_ref_sys.sql


createdb -U postgres -h localhost -T postgis_template postnas_test


psql -U postgres -h localhost -d postnas_test -f alkis_PostNAS_0.7_schema.sql


psql -U postgres -h localhost -d postnas_test -f alkis_PostNAS_0.7_keytables.sql


psql -U postgres -h localhost -d postnas_test -f sichten.sql


ogr2ogr -f "PostgreSQL" -nlt GEOMETRY -skipfailures -append PG:"dbname=postnas_test user=postgres host=localhost port=5432" -a_srs EPSG:25832 NAS_Testdaten_Basis_DLM_GID_V6_0_0_20090806.xml

Beim letzten Skript wird nur eine Fehlermeldung ausgegeben.


Warning 1: Geometry to be inserted is of type Polygon, whereas the layer geometry type is Point.
Insertion is likely to fail
ERROR 1: INSERT command for new feature failed.
ERROR:  new row for relation "ax_bahnverkehrsanlage" violates check constraint "enforce_geotype_wkb_geometry"


Command: INSERT INTO "ax_bahnverkehrsanlage" ("wkb_geometry" , "gml_id", "beginnt", "advstandardmodell", "bahnhofskategorie") VALUES ('0103000020E8640000010000002300000046B6F3FD915A16412B8716F18271554123DBF97EB75A1641A8C64BFF83715541E92631883B5A164137894158927155416891ED7C185A1641DF4F8D6F967155417F6ABCF4ED591641D7A370059B7155416F128340D35916410C022BB79D7155413108AC9C7B591641E17A145EA67155418B6CE77B665916414260E558A8715541DBF97E6AE758164137894160B47155410AD7A3F0B058164146B6F33DB9715541CBA145369C581641CFF753EBBA715541CBA14536795816412B871669BD715541105839B4295816414C378941C3715541C520B0720D5816411D5A6443C571554189416065F657164123DBF9CEC6715541EE7C3F35DC571641F0A7C67BC87155410E2DB29D8C5716419CC42058CD71554154E3A51B47571641AAF1D295D17155419CC420B01D57164191ED7C07D47155418195430BED561641EE7C3FB5D6715541D7A3703DD6561641508D97DED771554100000000C0561641448B6CEFD871554100000000C0561641713D0A57D571554100000000C05616419EEFA7EED1715541D122DBF9C9561641713D0A77D171554108AC1CDA4E57164160E5D072C9715541FED47869CC571641378941E0C1715541A4703D8A50581641931804B6B8715541F4FDD4F89A5816416891ED24B3715541A01A2F5D255916412DB29D0FA671554104560E2D5B5916413D0AD72BA0715541B6F3FD54CD591641E7FBA99994715541B6F3FDD4DD59164104560E95927155410AD7A3F0765A16410E2DB2158271554146B6F3FD915A16412B8716F182715541'::GEOMETRY, 'DENWAT01000C278C', '2008-10-23T00:00:00Z', 'Basis-DLM', 1010) RETURNING "ogc_fid"
ERROR 1: INSERT command for new feature failed.

Ich knoble hier schon seit einer halbe Woche rum und komme momentan nicht weiter. Google gibt mir auch nichts mehr her, durch was ich weiter komme deswegen wollt ich mal ein Forum zuraten ziehen die vielleicht noch einen Lichtblick für mich haben.

Du versuchst eine Polygongeometrie in eine Punkttabelle einzufügen. Sagt die Fehlermeldung. Wie du die Geometriespalte anpassen kannst steht im Handbuch.

Gruß Uwe

Hallo Uwe,


danke für deine schnelle Antwort. So einfach scheint die Sachen aber nicht zu liegen. Ich hab in den Testdaten zusätzlich:


Polygon

<position>
<gml:Surface gml:id="ID0E6JBK" srsName="urn:adv:crs:ETRS89_UTM32"> 
<gml :p atches> 
<gml:PolygonPatch interpolation="planar"> 
<gml:exterior> 
<gml:Ring> 
<gml:curveMember> 
<gml:Curve gml:id="ID0EHKBK"> 
<gml:segments> 
<gml:LineStringSegment> 
<gml :p osList>366244.498 5621259.767 366253.874 5621263.989</gml :p osList> 
</gml:LineStringSegment> 
</gml:segments> 
</gml:Curve> 
</gml:curveMember>
</position>

Punkte

<position> 
<gml:Point gml:id="ID0EQJBK" srsName="urn:adv:crs:ETRS89_UTM32"> 
<gml :p os>366180.852 5620630.587</gml :p os> 
</gml:Point> 
</position>

Wenn ich die Datenbank umstelle beschweren sich immer die anderen Daten. Das Datenbank-Schema ist leider so von der WhereGroup vorgeschrieben.
Wenn du kannst erklär mir bitte deine Lösung genau, aber auch über andere Ideen würde ich mich weiter hin sehr freuen.