2017-11-21 4 views
0

Ich habe Postgres 10 mit der postgis 2.4-Erweiterung installiert.Problem beim Einfügen von Multipolygon in Postgres db mit Postgis-Erweiterung

db.none(`INSERT INTO resto_poly_sub (foo, bar geom) VALUES $1 $2, 
 
ST_Force2D(ST_GeomFromGeoJSON($3))`, restoPolyArray)

Oben ist nicht der vollständige Code, aber ich versuchte, es zu minimieren.

Ich verwende dies, um meine Daten in die Datenbank einzufügen. Es funktioniert mit Punkten, aber nicht mit MultiPolygons oder MultiLineStrings. Es fügt alle Daten ohne Fehler in die db ein, aber wenn ich eine select-Anweisung zum Abrufen der Daten verwende, kommt sie mit einem leeren Geometriewert zurück.

Die Daten, die eingefügt werden, werden aus dem Prospekt gezogen.

[ 
    { 
     type: 'Feature', 
     properties: { 
     foo: 17000, 
     bar: null 
     geom: { 
      type: 'MultiPolygon', 
      coordinates: [ 
       [ 
        [ -115.35644531250001, 37.4364847574233 ], 
        [ -115.33447265625001, 36.950769770175164 ], 
        [ -114.69726562500001, 37.08673426633463 ], 
        [ -114.70825195312501, 37.27929803862557 ], 
        [ -115.35644531250001, 37.4364847574233 ] 
       ] 
      ], 
      crs: [Object] 
     } 
     } 
    } 
] 

Ich füge nur die Eigenschaften ein.

+0

Vielen Dank im Voraus für die Hilfe – BStill

+0

Was ist die Definition der 'resto_point_sub' Tabelle? Was ist der Säulentyp für die Geometrie? Was ist der Fehler von PostGIS? Haben Sie den [GeoJSON-Standard] (http://geojson.org/) gelesen? – IvanSanchez

+0

@IvanSanchez Es wird kein Fehler ausgegeben. Es wird in die Tabelle eingefügt, aber der Wert wird beim Abrufen leer. – BStill

Antwort

0

Ich fand es heraus. Ich habe ein Polygon in meine Datenbank eingefügt und nicht ein Multipolygon, damit es aus irgendeinem Grund leer wird.

ich verwenden, um diese ST_Force2D(ST_Multi(ST_GeomFromGeoJSON(geom)))

Insbesondere die ST_Multi() Funktion es für mich zu konvertieren.

Verwandte Themen