ฉันค่อนข้างใหม่สำหรับ Postgres และ PostGIS
ฉันกำลังพยายามทำการจับคู่แผนที่อย่างง่าย ๆ (หรือการอนุมานเส้นทางถ้าคุณต้องการ) ของบางจุด GPS ฉันใช้postgres (PostGIS)
ฉันมีตารางในฐานข้อมูลที่มีคะแนน GPS ของฉัน: gpspoints (Lat, Long, time, speed, azimuth, geometry, ... )
ฉันได้นำเข้าไฟล์รูปร่างของเครือข่ายถนนลงในฐานข้อมูลของฉันด้วย: เส้นทาง (gid, idrte, รุ่น, nomrte, norte, clsrte, geom, ... ) - ฉันไม่มี azimuth ของลิงก์และฉันเป็น ไม่แน่ใจว่าฉันจะคำนวณได้อย่างไรโดยใช้ฟังก์ชั่น postgis ST_azimuth ทั้งหมดที่ฉันมีคือ shapefile ของเครือข่ายถนนที่มีคอลัมน์ที่ระบุข้างต้น
ฉันต้องการเชื่อมโยงจุด GPS แต่ละจุดกับลิงก์ที่ใกล้ที่สุด (ในบัฟเฟอร์ประมาณ 20 เมตรรอบจุด) เฉพาะเมื่อทิศทางของลิงก์เห็นด้วยกับราบของจุด GPS (+ หรือ -15 องศา) และดึงตำแหน่งที่คาดการณ์ไว้ มิฉะนั้นฉันต้องการให้ค้นหาลิงค์ที่ใกล้ที่สุด NEXT ภายในบัฟเฟอร์ 20 เมตรซึ่งมีราบราบที่ยอมรับได้! (เหมือนภาพ!)
ฉันต้องการพิกัดพิกัดใหม่ของจุด GPS ที่คาดการณ์ไว้ในตาราง "gpspoints" เป็น "projectedLat" และ "projectedLong"
(ในภาพด้านล่างแสดงจุดที่เกิดขึ้นจริงโดยใช้ทิศทางในขณะที่จุดที่คาดการณ์ไม่มีเครื่องหมายทิศทางใด ๆ )
ST_Azimuth
แต่จำไว้ว่ามันจะบอกคุณราบที่เกี่ยวกับทิศทางของการแปลง