Postgis 2.0 - chế độ xem public.geometry_columns không chứa thông tin chính xác cho chế độ xem


10

Gần đây chúng tôi đã cập nhật cơ sở dữ liệu của mình lên Postgis 2.0.

Trong hệ thống của chúng tôi, chúng tôi đã sử dụng để tạo các khung nhìn cho các bảng có chứa một cột hình học. Sau khi tạo chế độ xem, chúng tôi cũng cập nhật thủ công bảng hình học_columns với thông tin cần thiết. Các khung nhìn được sử dụng để tạo các lớp Geoserver và cũng để cung cấp dữ liệu cho ogr2ogr.

Vấn đề trong Postgis 2.0 là bảng hình học_columns đã được thay thế bằng chế độ xem lấy dữ liệu từ danh mục hệ thống. Trong trường hợp của chúng tôi, đối với các chế độ xem được tạo, chúng tôi không truy xuất thông tin chính xác trong các cột 'tọa độ', 'srid' và 'loại'.
Thông tin : sau một số nghiên cứu tôi đã phát hiện ra rằng chế độ xem hình học đang sử dụng bảng pg_constraint để điền vào các cột đó, nhưng đối với chế độ xem đó, không có ràng buộc nào được xác định.

Có ai có bất cứ ý tưởng làm thế nào chúng ta có thể khắc phục vấn đề này? Làm thế nào chúng ta có thể buộc chế độ xem gemipse_columns để lấy thông tin cần thiết? Có một cách giải quyết hoặc cách khác để làm điều này?

Câu trả lời:


8

Tôi đã tìm thấy giải pháp cho vấn đề của mình: Tất cả thông tin cần thiết có thể được tìm thấy tại liên kết này https://postgis.net/docs/USE_postgis_dbmanepage.html#Manual_Register_Spatial_Column

Giải pháp 1: Tạo bảng và thêm typmod cột hình học dựa trên, quá trình tạo sẽ đăng ký chính xác trong hình học_columns.
Chính xác: TẠO BẢNG pois_ny (gid SERIAL PRIMARY KEY, hình học geom (POINT, 4326));
Không chính xác: TẠO BẢNG pois_ny (gid SERIAL PRIMARY KEY); CHỌN AddGeometryColumn ('pois_ny', 'geom', 4326, 'POINT', 2, false);

Giải pháp 2: Tạo chế độ xem và buộc typmod cho các cột hình học,
ví dụ: TẠO VIEW vw_pois_ny_parks NHƯ CHỌN geom :: hình học (POINT, 4326) Là geom TỪ pois_ny

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.