Trong PostGIS, cho các điểm có vĩ độ và kinh độ có datatype địa lý .
Để thêm một cột:
alter table your_table add column geog geography;
Để chèn dữ liệu:
insert into your_table (geog) values ('SRID=4326;POINT(longitude latitude)');
4326 là không gian ID tham khảo nói rằng dữ liệu của nó trong độ kinh độ và vĩ độ, tương tự như trong GPS. Thông tin thêm về nó: http://epsg.io/4326
Thứ tự là Kinh độ, Vĩ độ - vì vậy nếu bạn vẽ nó làm bản đồ, đó là (x, y).
Để tìm điểm gần nhất bạn cần đầu tiên để tạo ra chỉ số không gian:
create index on your_table using gist (geog);
và sau đó yêu cầu, chẳng hạn, 5 gần nhất với một điểm nhất định:
select *
from your_table
order by geog <-> 'SRID=4326;POINT(lon lat)'
limit 5;
Nguồn
2017-11-20 16:21:50
Nếu bạn đang làm hai điểm (Bản đồ lat/lon 2D) Tôi muốn sử dụng kiểu dữ liệu Hình học. Nếu bạn cần phải giới thiệu độ cao hoặc độ cong của trái đất trong khoảng cách của bạn, Địa lý là nơi bạn muốn đi. – Twelfth
Có bất kỳ câu trả lời nào dưới đây giải quyết câu hỏi của bạn không?Nếu vậy, tôi khuyến khích bạn chọn một câu trả lời :) – Volte
có câu trả lời cho điều này không? –