2

私はpostgreSQL8.4+PostGIS1.5を持っています。

GeoJsonを生成したい。そうです:

SELECT row_to_json(fc)
 FROM ( SELECT 'FeatureCollection' As type, array_to_json(array_agg(f)) As features
 FROM (SELECT 'Feature' As type
, ST_AsGeoJSON(lg.the_geom)::json As geometry
, row_to_json(lp) As properties
   FROM parcels_temp As lg 
     INNER JOIN (SELECT num, cadastr FROM parcels_temp) As lp 
   ON lg.num = lp.num  ) As f )  As fc;

しかし、エラーが発生します:

 ERROR:  type "json" does not exist
 LINE 4:     , ST_AsGeoJSON(lg.the_geom)::json As geometry

私は何が間違っているのですか?

4

1 に答える 1

10

jsonPostgreSQL8.4にはデータ型はありません。このタイプは9.2で導入されましたが、9.1へのバックポートが作成されました。このビットバケットを参照してください。

を使用しtextます。jsonとにかく型の単なる検証ラッパーtextですが、興味深いのはrow_to_json--のような関数です。これ8.4では使用できません。

を使用できない場合text(たとえば、を期待するサードパーティのコードを使用しているjsonため、またはjson関数が必要なため)、PostgreSQLをアップグレードするときが来ました。PostGIS 1.5と同様に、8.4はとにかくかなり年をとっています。

于 2013-01-22T07:35:44.087 に答える