Buộc SRID trong lượt xem trong Postgis 2.0


9

Tôi có một vấn đề rất khó khăn: Tôi có cơ sở dữ liệu Postgis 2.0, được sử dụng làm kho dữ liệu cho Geoserver 2.1.3

Tôi có một bảng có cột hình học (hình dạng được đặt tên), với SRID 4326

Tôi đã tạo một chế độ xem như thế này:

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

Và sau đó tôi đã xuất bản chế độ xem bằng geoserver. Mọi thứ đều hoạt động, ngoại trừ các yêu cầu GetFeatureInfo, không thành công với lỗi 'Thao tác trên hình học SRID hỗn hợp Một cách đơn giản

select * from geometry_columns

trả về rằng SRID của pippo.geom là 0 (nhưng phải là 4326)

Tôi cũng đã thử với định nghĩa này cho xem

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

nhưng tôi vẫn có SRID = 0 trong hình học_columns .... có giúp được gì không?

Đây là cách lớp được định nghĩa trong Geoserver: nhập mô tả hình ảnh ở đây

Giải pháp thay thế

Tôi đã tìm thấy một cách giải quyết để khắc phục không phải vấn đề, nhưng để cho Geoserver thực hiện tìm kiếm không gian trên các yêu cầu GetFeatureInfo:

thay vì tạo một khung nhìn và xuất bản nó, tôi đã xuất bản một lớp SQL được định nghĩa trực tiếp trong máy chủ địa lý. Trong mẫu định nghĩa lớp, nó cho phép tôi chọn đúng loại đá quý và SRID và mọi thứ đều hoạt động ngay bây giờ!

Câu trả lời:


8

Bạn có thể sử dụng một typmod để chỉ định srid trong geometry_columnskhung nhìn, đại loại như

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

Các nhãn hiệu có thêm thông tin.


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.