Đó có phải là định dạng wkb bạn muốn không?
select ST_AsWKB('geog') from locations
Nhưng tại sao bạn lại muốn lấy dữ liệu ra trước để thực hiện tính toán khoảng cách?
/ Nicklas
Cập nhật
Được rồi
Tôi không biết tại sao bạn không nhận được kết quả thích hợp cho các truy vấn của mình. Tôi quá tệ trong php. Tôi đoán rằng kết quả bởi một số lý do được đẩy vào một số kiểu dữ liệu không đúng. Ý tôi là từ ST_AsText, bạn sẽ chỉ nhận được một chuỗi, không có gì lạ hơn thế.
Nhưng để đạt được khoảng cách, bạn không nên rút ra các điểm. Bạn tự tham gia để làm điều đó. Đó là điều bạn thường làm khi sử dụng PostGIS và so sánh các hình học khác nhau trong một bảng duy nhất.
Giả sử vùng địa lý đầu tiên có id =1 và vùng thứ hai có id =2, truy vấn có thể là:
SELECT ST_Distance(a.the_geog, b.the_geog) as dist
from locations a, locations b WHERE a.id=1 and b.id = 2;
Nếu bạn muốn khoảng cách đến tất cả các điểm (hoặc bất cứ điều gì) từ điểm có id =1, bạn có thể viết:
SELECT ST_Distance(a.the_geog, b.the_geog) as dist
from locations a inner join locations b on a.id != b.id WHERE a.id=1;
và như vậy.
Điều đó sẽ hiệu quả hơn rất nhiều.
/ Nicklas