2010-06-10 23 views
21

Tôi có một bảng trong đó một trong các cột là cột hình học the_geom cho đa giác có SRID. Tôi đã thêm một cột mới trong cùng một bảng với chính xác cùng một dữ liệu hình học như the_geom.Làm thế nào để thay đổi SRID của cột hình học?

Cột mới này có tên the_geom4258 vì tôi muốn đặt SRID thành 4258. Quy trình thay đổi SRID của hình học thành hệ tọa độ khác là gì? Có đủ để áp dụng truy vấn sau:

UPDATE table SET the_geom4258=ST_SetSRID(the_geom4258,4258); 

Trả lời

26

Bạn nên sử dụng chức năng ST_Transform. Cũng sử dụng các chức năng AddGeometryColumn để tạo cột mới của bạn, để đảm bảo tất cả những hạn chế cần thiết cũng được tạo ra:

SELECT AddGeometryColumn('table','the_geom4258',4258, 'POLYGON', 2); 

UPDATE table SET the_geom4258 = ST_Transform(the_geom,4258); 

ST_SetSRID chỉ đặt nhận dạng chiếu, nhưng không thực sự chuyển đổi hình học.

+0

Trả lời của bạn chính xác là những gì tôi cần. Cảm ơn rất nhiều. Chỉ có một điều nhỏ, bây giờ tôi đã nhận lỗi: "L ERI: AddToPROJ4SRSCache: không thể phân tích chuỗi proj4: '+ proj = tmerc + lat_0 = 0 + lon_0 = 16,5 + k = 0,999900 + x_0 = 500000 + y_0 = 0 + ellps = GRS80 + datum = ETRS89 + đơn vị = m + no_defs ': tên tham số ellipt không xác định " Mọi đầu mối tôi nên sửa giờ là gì? – Z77

+1

Đảm bảo có bản ghi cho srid 4258 trong bảng spatial_ref_sys của cơ sở dữ liệu của bạn. Nếu có bản ghi, hãy kiểm tra xem các thông số chiếu có khớp với các thông số tại đây không: http://spatialreference.org/ref/epsg/4258/postgis/ – amercader

+0

OK! Tôi là cô gái may mắn, tất cả những câu trả lời tôi có thể tìm thấy ở đây :) – Z77

Các vấn đề liên quan