Tạo hình học từ lat / lon trong bảng bằng PostGIS?


13

Tôi có một bảng với hơn 800.000 bản ghi bao gồm một cột lat và dài. Nguồn dữ liệu không tạo ra hình học, vì vậy tôi đang tìm cách làm điều này. Tôi biết có ST_MakePoint (x, y, SRID) nhưng tất cả tài liệu và các chủ đề khác chỉ ra cách tạo các điểm đơn lẻ. Làm cách nào để tạo kiểu hình học bằng các cột này?


1
bạn có nghĩa là tạo dòng từ những điểm này? Bởi vì các điểm là hình học giống như các đường và đa giác là ... Vì vậy, nếu bạn đang xem việc tạo các đường từ những điểm này, hãy kiểm tra bài đăng blog gần đây từ Paul Ramsey: blog.cleverelephant.ca/2015/03/making-lines-from -point.html
DPSSpatial 04/05/2015

Không. Tôi có nghĩa là muốn chuyển đổi chúng thành các loại hình học được sử dụng trong các truy vấn không gian. Có vẻ như câu hỏi của tôi đã được trả lời mặc dù vậy cảm ơn bạn!
dknuth

Câu trả lời:


28

Các phiên bản mới hơn của PostGIS cho phép cú pháp sau, phổ biến hơn một chút:

ALTER TABLE your_table ADD COLUMN geom geometry(Point, 4326);

Sau đó, sử dụng ST_SetSrid và ST_MakePoint để điền vào cột:

UPDATE your_table SET geom = ST_SetSRID(ST_MakePoint(longitude, latitude), 4326);

Xem tài liệu ở đây:


14

Nếu bạn chưa thêm cột hình học (giả sử EPSG: 4326 tại đây):

SELECT AddGeometryColumn ('your_table','geom',4326,'POINT',2);

Sau đó UPDATE, chuyển tên của các trường x và y của bạn:

UPDATE yourtable SET geom = ST_SRID(ST_MakePoint(longitude, latitude), 4326);

Điều này sẽ cập nhật toàn bộ bảng, trừ khi bạn bao gồm một WHEREmệnh đề


2
Tôi nghĩ ST_SRID phải là ST_SetSRID. Tôi đã gặp lỗi khi sử dụng ST_SRID
Vipin Gupta
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.