Tôi muốn truy xuất tập hợp các tòa nhà tôi có thể nhìn thấy từ một vị trí nhất định (điểm -lát, lng) và hướng (khoảng cách các góc) + chắc chắn với độ sâu nhất định (ví dụ 100 mét). Lý tưởng nhất là tôi muốn xuất ra một cái gì đó như: từ góc 1 đến góc2 người dùng có thể thấy tòa nhà 1, từ góc 2 đến góc 3 chúng ta thấy tòa nhà 2.
Dữ liệu = Đa giác đại diện cho các tòa nhà của một thành phố trong shapefile.
đầu vào: một vị trí và một định hướng (phạm vi góc) để thể hiện nhận thức trực quan của một người.
đầu ra :
Phiên bản 1 - danh sách {BuildingID}
Phiên bản 2 (tốt hơn) - danh sách {BuildingID, tập hợp các phân đoạn có thể nhìn thấy cho mỗi tòa nhà (mặt tiền của các tòa nhà)}
Phiên bản 3 (đầu ra lý tưởng) - danh sách {BuildingID, phạm vi góc }. (ví dụ, từ góc 1 đến góc2, người dùng có thể thấy tòa nhà 1, từ góc 2 đến góc 3, chúng ta thấy tòa nhà 2, v.v.)
Hộp công cụ tôi có thể sử dụng: PostGis, QGis, ruby, R
bắt đầu giải pháp cho đầu ra v1:
- tạo ra một hình tam giác biểu thị phạm vi hình ảnh đơn giản của người dùng cho một điểm và hướng nhất định (độ chính xác của góc) và với bán kính nhất định / ví dụ (ví dụ 100 mét)
- giao cắt điện toán với các tòa nhà (ví dụ: ST_INTERSMENT ) và phạm vi hình ảnh. nhưng một tòa nhà có thể che giấu một cái khác để giao điểm thuần túy giữa phạm vi thị giác và các tòa nhà có thể không thêm các tòa nhà có thể nhìn thấy. vấn đề này cần được giải quyết.
cập nhật: giải pháp tiềm năng 2
- tạo ra một hình tam giác biểu thị phạm vi hình ảnh đơn giản của người dùng cho một điểm và hướng nhất định (độ chính xác của góc) và với bán kính nhất định / Lawr (ví dụ 100 mét) - tạo ra n tia (LINE) ở các góc khác nhau làm đầy phạm vi.
- biến đổi tất cả các tòa nhà (POLYGONS) thành SEGITT / LINES
- cho mỗi tia tìm SEGMENT gần nhất và ID tòa nhà liên quan. (ST_DISTANCE, ST_DWithin)
ở giai đoạn này vì vậy chúng ta nên có một danh sách các tia và ID tòa nhà liên quan.
- sau đó chúng tôi có thể tổng hợp danh sách này {phạm vi góc, ID tòa nhà liên quan}.
Bất kỳ ý tưởng về một cách hiệu quả hơn để làm?