Postgis 2.0のビューでSRIDを強制する


9

非常にトリッキーな問題があります。Geoserver2.1.3のデータストアとして使用されるPostgis 2.0データベースがあります。

SRID 4326で、geometry列(名前付きのシェイプ)を持つテーブルがあります。

私はこのようなビューを作成しました:

CREATE VIEW pippo AS SELECT st_geometryn(shape,1) as geom FROM events

次に、geoserverを使用してビューを公開しました。GetFeatureInfoリクエストを除いてすべてが機能し、エラー 'Operation on mixed SRID geometries A simple

select * from geometry_columns

pippo.geomのSRIDが0であることを返します(ただし4326である必要があります)

ビューのこの定義でも試しました

CREATE VIEW pippo AS SELECT st_setsrid(st_geometryn(shape,1), 4326) as geom FROM events

しかし、geometry_columns .... any helpにSRID = 0がまだありますか?

以下は、Geoserverでのレイヤーの定義方法です。 ここに画像の説明を入力してください

回避策

問題自体を修正するのではなく、GeoserverがGetFeatureInfoリクエストに対して空間検索を実行できるようにする回避策を見つけました。

ビューを作成して公開する代わりに、ジオサーバーで直接定義されたSQLレイヤーを公開しました。レイヤー定義フォームでは、適切な地理タイプとSRIDを選択することができ、すべてが機能しています。

回答:


8

typmodを使用して、geometry_columnsビューのsridを指定できます。

CREATE VIEW pippo AS
SELECT st_geometryn(shape,1)::geometry(Geometry, 4326) as geom
FROM events

マニュアルでは、より多くの情報を持っています。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.