无法使用postgis扩展名

时间:2017-11-21 21:32:36

标签: postgresql leaflet postgis

我有postgres 10安装了postgis 2.4扩展程序。

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

上面不是完整的代码,但我试图将其最小化。

我正在使用它将数据插入数据库。它适用于点,但不适用于MultiPolygons或MultiLineStrings。它会将所有数据插入到db中而没有错误,但是当我使用select语句检索数据时,它会返回一个空的几何值。

正在插入的数据正在从传单中提取。

[
   {
      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]
         }
      }
   }
]

我只插入属性。

1 个答案:

答案 0 :(得分:0)

我明白了。我在我的数据库中插入一个多边形而不是多边形,因此它会因某种原因导致它变空。

我使用了这个ST_Force2D(ST_Multi(ST_GeomFromGeoJSON(geom)))

具体来说,ST_Multi()函数可以为我转换它。