Postgis 2.0-public.geometry_columnsビューにビューの正しい情報が含まれていない


10

最近、データベースをPostgis 2.0に更新しました。

私たちのシステムでは、geometry列を含むテーブルのビューを作成するために使用していました。ビューの作成後、geometry_columnsテーブルを必要な情報で手動で更新しました。ビューは、Geoserverレイヤーの作成とogr2ogrのデータのフィードに使用されます。

Postgis 2.0 の問題は、geometry_columnsテーブルが、システムカタログからデータを取得するビューに置き換えられたことです。私たちの場合、作成されたビューでは、「coord_dimension」、「srid」、および「type」列の正しい情報を取得していません。
情報:いくつかの調査の結果、geometry_columnsビューがpg_constraintテーブルを使用してこれらの列を埋めていることがわかりましたが、そのビューには制約が定義されていません。

誰かがこの問題をどのように修正できるか考えていますか?gemetry_columnsビューに必要な情報を取得させるにはどうすればよいですか?これを行うには回避策または他の方法がありますか?

回答:


8

私は問題の解決策を見つけました:必要な情報はすべてこのリンクで見つけることができます https://postgis.net/docs/using_postgis_dbmanagement.html#Manual_Register_Spatial_Column

解決策1:テーブルを作成し、typmodベースのジオメトリ列を追加すると、作成プロセスでそれがgeometry_columnsに正しく登録されます。
正しい例:CREATE TABLE pois_ny(gid SERIAL PRIMARY KEY、geom geometry(POINT、4326));
間違った例:CREATE TABLE pois_ny(gid SERIAL PRIMARY KEY); SELECT AddGeometryColumn( 'pois_ny'、 'geom'、4326、 'POINT'、2、false);

解決策2:ビューを作成し、geometry列のtypmodを強制する。
例:CREATE VIEW vw_pois_ny_parks AS SELECT geom :: geometry(POINT、4326)As geom FROM pois_ny

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