web-dev-qa-db-ja.com

エラー:GeoJson表現が無効です

geoJSON Specショー、

{
  "type": "Feature",
  "geometry": {
    "type": "Point",
    "coordinates": [125.6, 10.1]
  },
  "properties": {
    "name": "Dinagat Islands"
  }
}

しかし、それを ST_GeomFromGeoJSON 、このように、

SELECT ST_GeomFromGeoJSON($${                                                                                                                          
  "type": "Feature",                                                                                                                                   
  "geometry": {                                                                                                                                        
    "type": "Point",                                                                                                                                   
    "coordinates": [125.6, 10.1]                                                                                                                       
  },                                                                                                                                                   
  "properties": {                                                                                                                                      
    "name": "Dinagat Islands"                                                                                                                          
  }                                                                                                                                                    
}$$);

エラーが出ます

エラー:GeoJson表現が無効です

1
Evan Carroll

ST_GeomFromGeoJSON のドキュメントから

ST_GeomFromGeoJSONは、JSONジオメトリフラグメントに対してのみ機能します。 JSONドキュメント全体で使用しようとすると、エラーがスローされます。

これは、GeoJSONドキュメントのジオメトリから値のみを切り出す必要があることを意味します。

SELECT ST_AsText(geom)
FROM ST_GeomFromGeoJSON($${                                                                                                                          
  "type": "Point",                                                                                                                                   
  "coordinates": [125.6, 10.1]                                                                                                                       
}$$) AS geom;

     st_astext     
-------------------
 POINT(125.6 10.1)

ST_GeomFromGeoJSONST_AsGeoJSON の逆です(geometryセクションのみを生成します) GeoJSONドキュメントの)。

2
Evan Carroll