ฉันจะเพิ่มการชดเชยลงใน lat / lon เพื่อรับจุดใหม่โดยใช้ PostGIS ได้อย่างไร


9

การใช้ PostGIS ฉันมีจุด lat / lon และต้องการเพิ่มออฟเซ็ตตะวันออก / ตะวันตกและทิศเหนือ / ทิศใต้เป็นเมตรเพื่อให้ได้จุดใหม่ เป็นไปได้ไหม

คำตอบ:


8

คุณสามารถใช้ ST_Translate:

ฟังก์ชัน ST_Translate ใช้รูปทรงเรขาคณิตใด ๆ (linestring, multiline ฯลฯ ) ส่งคืนรูปทรงเรขาคณิตใหม่ที่เป็นรูปทรงเรขาคณิตดั้งเดิมที่ย้ายโดยเวกเตอร์ที่กำหนดโดย X, Y, Z โปรดทราบว่าหน่วยการวัดอยู่ในหน่วยของระบบอ้างอิงเชิงพื้นที่ของอาร์กิวเมนต์ทางเรขาคณิตเสมอ ST_Translate มีสองรูปแบบ ST_Translate (เรขาคณิต X, Y, Z) และ ST_Translate (เรขาคณิต, X, Y)

ที่มา: http://www.bostongis.com/postgis_translate.snippet

คุณจะต้องแปลงละติจูด / ลองจิจูดเป็นเมตรก่อน คุณสามารถใช้ ST_Transform เพื่อให้ได้สิ่งนี้:

ST_Transform - ส่งกลับเรขาคณิตใหม่ด้วยพิกัดที่เปลี่ยนเป็น SRID ที่อ้างอิงโดยพารามิเตอร์จำนวนเต็ม

ที่มา: http://postgis.net/docs/ST_Transform.html


มันเป็นละติจูด / ลองจิจูดถึงส่วนเมตรที่ฉันมีปัญหา มีข้อเสนอแนะอะไรบ้าง?
Dave Jennings

ฉันเพิ่มฟังก์ชั่นที่สอดคล้องกับคำตอบ หากคุณไม่ทราบว่าจะเลือก SRID เป้าหมายใดคุณจะต้องใช้ขอบเขตทางภูมิศาสตร์ของข้อมูลของคุณ
underdark

ขอบคุณ การวิจัยอื่น ๆ ของฉันในที่สุดก็บอกฉันในสิ่งเดียวกัน ฉันคิดอย่างไร้เดียงสาว่าอาจจะง่ายกว่าและมี SRID เดียวที่ฉันสามารถใช้ได้ แต่ดูเหมือนว่าคุณจะต้องเลือกหนึ่งตัวตามตำแหน่งของคุณ
Dave Jennings
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.