Tính khoảng cách giữa các điểm trong postgis


8

Tôi có một bảng postgres / postgis chứa một loạt các điểm liên tiếp. Tôi muốn thêm một cột mới vào bảng chứa khoảng cách giữa mỗi điểm và điểm đầu tiên, và tiếp tục cho đến khi tất cả các điểm được xử lý (điểm đầu tiên phải có khoảng cách là 0). Điều này có thể được thực hiện với một truy vấn hay tôi cần sử dụng Python hoặc tương đương để tạo một vòng lặp? Cảm ơn nhiều


1
Chào mừng bạn đến với gis.stackexchange @william! Ý của bạn là "khoảng cách giữa mỗi điểm và điểm đầu tiên" hay "khoảng cách giữa mỗi điểm và điểm trước"? Điểm của bạn được đánh số, chỉ ra trình tự?
underdark

Hay bạn đang tìm kiếm một ma trận, sử dụng mỗi điểm làm điểm bắt đầu và đo khoảng cách đến từng điểm trong lớp?
RyanKDalton

Câu trả lời:


4

Ê

Nếu giả sử rằng bạn có một trường id gọi là gid và điểm đầu tiên có gid 1 thì bạn có thể làm một cái gì đó như:

ALTER table my_table ADD COLUMN dist DOUBLE PRECISION;

UPDATE my_table SET dist=ST_Distance(my_table.geom, b.geom) 
FROM (SELECT geom FROM my_table WHERE gid = 1) b;

Điều đó sẽ thêm một cột được gọi là dist và điền vào cột đó với khoảng cách đến điểm với gid = 1

NickH HTH

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.