Postgis 2.0-public.geometry_columns视图不包含视图的正确信息


10

我们最近将数据库更新为Postgis 2.0。

在我们的系统中,我们曾经为包含几何列的表创建视图。创建视图后,我们还使用必要的信息手动更新了geometry_columns表。这些视图用于创建Geoserver图层,也用于为ogr2ogr馈送数据。

Postgis 2.0中的问题在于,geometry_columns表已替换为从系统目录检索数据的视图。在我们的情况下,对于创建的视图,我们不会在“ coord_dimension”,“ srid”和“ type”列中检索正确的信息。
信息:经过一些研究,我发现geometry_columns视图正在使用pg_constraint表填充这些列,但是对于该视图没有定义约束。

有谁知道我们如何解决这个问题?我们如何强制gemetry_columns视图检索必要的信息?是否有解决方法或其他方法?

Answers:


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));
错误:创建表pois_ny(gid SERIAL PRIMARY KEY); SELECT AddGeometryColumn('pois_ny','geom',4326,'POINT',2,false);

解决方案2:为几何列创建视图并强制typmod,
例如CREATE VIEW vw_pois_ny_parks AS SELECT geom :: geometry(POINT,4326)as geom FROM pois_ny

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.