PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Làm thế nào để thêm 2 điểm có khoảng cách giữa chúng (SRID =32636)?

Bạn có thể truyền geometry của mình tới geography ST_Project nó (theo phương vị bạn muốn). Làm như vậy bạn có thể dễ dàng cung cấp khoảng cách tính bằng mét:

CREATE TEMPORARY TABLE test_table (name text, geo geometry(point,(32636)));
INSERT INTO test_table VALUES ('foo','SRID=32636;POINT(2076155.32235105 4828109.18280588)');

SELECT 
 ST_AsText(
  ST_Transform(
   ST_Project(
     ST_Transform(geo,4326)::geography,10,radians(45.0))::geometry,
   32636)
 )
FROM test_table;

                st_astext                 
------------------------------------------
 POINT(2076150.11319696 4828116.26815917)
(1 Zeile)

Bạn có thể kiểm tra khoảng cách bằng cách sử dụng ST_Distance :

SELECT 
  ST_Distance(
    ST_Transform(geo,4326)::geography,
    ST_Project(ST_Transform(geo,4326)::geography,10,radians(45.0))::geometry )
FROM test_table;

st_distance 
-------------
          10

LƯU Ý :Tôi đang sử dụng ST_Transform để chuyển từ SRS dự kiến ​​của bạn sang SRS kinh độ / vĩ độ, để chúng tôi có thể truyền nó tới geography , nếu không, chúng tôi sẽ gặp lỗi:

SELECT geo::geography FROM test_table;

ERROR:  Only lon/lat coordinate systems are supported in geography.

Đọc thêm: Tính toán điểm cách 50 dặm (Bắc, 45% NE, 45% SW)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. postgres - với đệ quy

  2. bộ chuyển đổi postgres rails có hỗ trợ ssl không?

  3. Làm thế nào để chọn nhiều hơn 1 bản ghi mỗi ngày?

  4. Hiệu suất chậm quét tuần tự Postgresql trên 500 triệu hàng

  5. Kết nối Python với DB Heroku PostgreSQL?