ฉันต้องการเรียกคืนชุดอาคารที่ฉันสามารถดูได้จากตำแหน่งที่ระบุ (จุด -lat, lng) และการวางแนว (ช่วงเวลาของมุม) + แน่นอนด้วยความลึกที่กำหนด (เช่น 100 เมตร) โดยหลักการแล้วฉันต้องการส่งออกบางอย่างเช่น: จากมุม 1 ถึงมุม 2 ผู้ใช้สามารถเห็นสิ่งปลูกสร้าง 1 จากมุม 2 ถึงมุม 3 เราจะเห็นอาคาร 2
Data =รูปหลายเหลี่ยมแสดงถึงสิ่งปลูกสร้างของเมืองใน shapefile
อินพุต:ตำแหน่งและการวางแนว (ช่วงมุม) เพื่อแสดงการรับรู้ภาพของบุคคล
เอาท์พุท :
รุ่น 1 - รายการ {BuildingID}
รุ่น 2 (ดีกว่า) - รายการ {BuildingID, ชุดของส่วนที่มองเห็นได้สำหรับแต่ละอาคาร (ซุ้มอาคาร)}
รุ่น 3 (ผลลัพธ์ในอุดมคติ) - รายการ {buildingID ช่วงมุม } (สำหรับตัวอย่างจากมุม 1 ถึงมุม 2 ผู้ใช้สามารถมองเห็นอาคาร 1 จากมุม 2 ถึงมุม 3 เราจะเห็นอาคาร 2 ฯลฯ )
กล่องเครื่องมือที่ฉันสามารถใช้ได้: PostGis, QGis, ruby, R
start of solution สำหรับ output v1:
- การสร้างรูปสามเหลี่ยมแทนขอบเขตภาพที่เรียบง่ายของผู้ใช้สำหรับจุดและทิศทางที่กำหนด (มุมภายใน) และด้วยรัศมี / ความลึกที่แน่นอน (เช่น 100 เมตร)
- คำนวณจุดตัดด้วยอาคาร (เช่น ST_INTERSECTION ) และขอบเขตภาพ แต่สิ่งปลูกสร้างสามารถซ่อนอีกจุดหนึ่งที่แยกกันอย่างแท้จริงระหว่างขอบเขตภาพและสิ่งปลูกสร้างอาจไม่มีสิ่งปลูกสร้างใด ๆ ปัญหานี้ต้องได้รับการแก้ไข
อัปเดต: โซลูชันที่เป็นไปได้ 2
- การสร้างรูปสามเหลี่ยมแทนขอบเขตภาพที่เรียบง่ายของผู้ใช้สำหรับจุดและทิศทางที่กำหนด (ช่วงมุม) และรัศมี / ความลึก (เช่น 100 เมตร) - สร้าง n รังสี (LINE) ในมุมที่แตกต่างกัน กรอกขอบเขต
- เปลี่ยนสิ่งปลูกสร้างทั้งหมด (POLYGONS) เป็น SEGMENTS / LINES
- สำหรับแต่ละรังสีที่ค้นหา SEGMENT ที่ใกล้เคียงที่สุดและอาคารที่เกี่ยวข้อง (ST_DISTANCE, ST_D ภายใน)
ในขั้นตอนนี้ดังนั้นเราควรมีรายการรังสีและ ID อาคารที่เกี่ยวข้อง
- จากนั้นเราสามารถรวมรายการนี้ {ช่วงของมุม, รหัสอาคารที่เกี่ยวข้อง}
มีความคิดเกี่ยวกับวิธีที่มีประสิทธิภาพมากกว่าในการทำอย่างไร