คำถามติดแท็ก great-circle

6
มีเครื่องมือใดใน Python สำหรับทำการสร้างระยะทางวงกลม + สายที่ยอดเยี่ยม
ฉันต้องใช้ Python เพื่อสร้างระยะทางวงกลมที่ยอดเยี่ยม - ทั้งจำนวนและโดยเฉพาะอย่างยิ่ง 'เส้นโค้ง' บางชนิดที่ฉันสามารถใช้วาดในแผนที่ฝั่งไคลเอ็นต์ ฉันไม่สนใจเกี่ยวกับรูปแบบของเส้นโค้ง - ไม่ว่าจะเป็น WKT หรือชุดของพิกัด - แต่เพียงแค่ต้องการนำข้อมูลออกมา มีเครื่องมืออะไรบ้างที่นั่น? ฉันควรใช้อะไร

3
ค้นหาระยะทางระหว่างสองพิกัดในทรงรีหรือไม่
ฉันมีละติจูดและลองจิจูดสองชุด ฉันจะหาระยะห่างระหว่างสองตำแหน่งได้อย่างไรถ้าฉันคิดว่าโลกนั้นเป็นรูปวงรีที่สมบูรณ์แบบ (ด้วยความเยื้องศูนย์ของ 0.0167)

5
ความแตกต่างระหว่างการคำนวณระยะทางของ Vincenty กับ Great Circle หรือไม่?
งูใหญ่แพคเกจ geopyมีสองวัดระยะทางเทคนิค: เกรทเซอร์เคิและVincenty ของสูตร >>> from geopy.distance import great_circle >>> from geopy.distance import vincenty >>> p1 = (31.8300167,35.0662833) # (lat, lon) - https://goo.gl/maps/TQwDd >>> p2 = (31.8300000,35.0708167) # (lat, lon) - https://goo.gl/maps/lHrrg >>> vincenty(p1, p2).meters 429.16765838976664 >>> great_circle(p3, p4).meters 428.4088367903001 อะไรคือความแตกต่าง? ต้องการการวัดระยะทางแบบใด

4
เส้นยาวที่มีรูปร่างเป็นไฟล์จะพิจารณา geodesics หรือเส้นตรงในพื้นที่ Lat Lat 2D หรือไม่?
มีคำจำกัดความว่าเส้นเชื่อมต่อจุดยอดในรูปแบบ shapefile หรือไม่? ในกรณีที่ง่ายที่สุดลองนึกภาพเส้นที่มีเพียง 2 คะแนนจาก 40, -118 ถึง 40, -112 - นั่นคือที่สุ่มในสหรัฐอเมริกา - ด้วยระบบพิกัดทางภูมิศาสตร์ WGS84 มาตรฐาน นี่คือเนื้อหาของไฟล์. prj: GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] ประเด็นคือ 40.1, -116 เหนือหรือใต้ของเส้น? หากเราพิจารณาว่าเส้นถูกสอดแทรกเชิงเส้นในพื้นที่ latlong มันจะเป็นไปตาม 40 องศาขนาน (วงกลมเล็ก) และจุดนั้นอยู่ทางทิศเหนือของเส้น หากเราพิจารณาว่าเส้นนั้นเป็นเส้นทางที่สั้นที่สุดบนพื้นผิวโลกมันเป็นมาตราส่วน (วงกลมใหญ่) ที่มีละติจูดสูงสุดที่กึ่งกลางบรรทัดสูงกว่า 40.1 องศา จากนั้นจุดจะอยู่ทางใต้ของเส้น หรือมันเป็นเพียงแค่ไม่ได้กำหนด? เนื่องจากรูปแบบ shapefile ไม่มีความคิดของเส้นโค้ง แต่มีเพียงเส้นตรงที่เชื่อมต่อกันเท่านั้น บรรทัดจะต้องมีความหนาแน่น (เพิ่มคะแนนตามแนวเส้น) เพื่อชี้แจงคำตอบนี้ ถ้าฉันสร้างสถานการณ์ดังกล่าวใน QGIS เส้นนั้นจะขนานกันไป 40 องศาและจะบอกคำตอบให้ฉันคือ …

1
เส้นวงกลมขนาดใหญ่ในการฉายภาพ Equirectangular
เพียงเพื่อตรวจสอบว่าฉันอยู่ในเส้นทางที่ถูกต้อง: วงกลมใหญ่ทั้งหมดอยู่ในทรงกลมและในการฉายภาพทางอ้อม (เช่นละติจูด, ลองจิจูดคู่): เส้นเมอริเดียน (เช่นไปขั้วโลก) ของแบบฟอร์ม tan latitude = sin360(longitude + rotation) * amplitude + offset (ด้วยข้อ จำกัด เพิ่มเติมเกี่ยวกับการรวมกันของออฟเซ็ต / แอมพลิจูด - เห็นได้ชัดว่าเส้นทางวงกลมที่ยิ่งใหญ่ทั้งหมดที่มีแอมพลิเคชั่น 0 ยังมีออฟเซต 0 - เส้นศูนย์สูตรด้วย) หรือมีเส้นทางวงกลมขนาดใหญ่ที่ไม่เหมาะกับรูปแบบนี้ (อีกครั้งเฉพาะในระบบพิกัดละติจูด - ลองจิจูดไม่ใช่บนแผนที่อื่น ๆ ) หมายเหตุ: ฉันได้เพิ่มtanข้างต้นหลังจากโพสต์คำถามในการตอบสนองต่อการตอบที่ดีเยี่ยม whubers ปรากฎว่าoffsetเป็น 0 เสมอ

2
กำลังสร้าง Great Circle Arcs ที่ดูดีบนแผนที่ Web Mercator หรือไม่
ฉันกำลังพยายามสร้างแผนที่โดยมีข้อมูลระบุเที่ยวบินบางส่วนและต้องการใช้ Great Circle Arcs เพื่อเชื่อมต่อแหล่งที่มาและปลายทาง โดยพื้นฐานแล้วฉันต้องการทำสิ่งที่คล้ายกับแผนที่ Facebook ที่มีชื่อเสียง: ฉันใช้ฟังก์ชั่นที่ให้ไว้ในโพสต์นี้: https://gis.stackexchange.com/a/5205/442 , (เช่นบทความบล็อกนี้: http://anitagraser.com/2011/08/20/visualizing-global-connections / ) และฉันสามารถได้รับเส้น แต่พวกเขาข้ามเส้นวันที่ระหว่างประเทศเช่นเดียวกับการรวมกลุ่มที่เสา: @underdark ได้กล่าวถึงในบล็อกลิงก์ที่เชื่อมโยงว่าต้องแยกบรรทัดเหล่านี้ แต่ฉันไม่รู้วิธีแยกโดยอัตโนมัติใน PostGIS นอกจากนี้การรวมกลุ่มของเส้นใกล้เสาต้องแก้ไขด้วยเช่นกัน ฉันจะทำทั้งสองอย่างนี้ได้อย่างไรเมื่อฉันมีที่ตั้งจุดสำหรับการเริ่มต้นและสิ้นสุดของเที่ยวบินเหล่านี้

2
ระยะห่างระหว่างจุดละติจูด / ลองจิจูด
ฉันพยายามคำนวณระยะทางระหว่างจุดละติจูด / ลองจิจูดสองจุด ฉันมีโค้ดบางส่วนที่ใช้งานได้เป็นส่วนใหญ่ซึ่งฉันดึงออกมาจากโพสต์นี้แต่ฉันไม่เข้าใจว่ามันทำงานอย่างไร นี่คือรหัส: <?php // POINT 1 $thisLat = deg2rad(44.638); $thisLong = deg2rad(-63.587); // POINT 2 $otherLat = deg2rad(44.644); $otherLong = deg2rad(-63.911); $MeanRadius = 6378 - 21 * sin($lat1); $xa = (Cos($thisLat)) * (Cos($thisLong)); $ya = (Cos($thisLat)) * (Sin($thisLong)); $za = (Sin($thisLat)); $xb = (Cos($otherLat)) * (Cos($otherLong)); $yb …

1
ที่ตั้งโครงการบนเส้นทาง (วงกลมใหญ่)
ฉันค้นหาไซต์ SE นี้มาหลายชั่วโมงแล้วและฉันยังคงพยายามหาทางแก้ไขคำถามของฉัน เป้าหมายของฉันคือให้วิธีใน OSM และตำแหน่งของฉัน (พิกัดละติจูด / ลองจิจูด) ฉันต้องการค้นหาตำแหน่งที่ใกล้ที่สุด (พิกัดละติจูด / ลองจิจูด) ในวิธีนั้น จุดสามารถไปได้ทุกที่ไม่ จำกัด เฉพาะจุดที่ใช้กำหนดเส้นทาง ดังนั้นฉันคิดว่าอัลกอริทึมต่อไปนี้: เส้นทางแยกเข้าสู่ขอบที่แยกกันแต่ละด้านเชื่อมต่อกันเพียงสองจุด เลือกขอบที่ใกล้เคียงที่สุด ฉายตำแหน่งของฉันลงบนขอบนั้น ขณะนี้มีคำถามมากมายเกี่ยวกับการคำนวณระยะทางระหว่างสถานที่และเส้นทาง: WGS ชี้ไปที่ส่วนของเส้น WGS (วงกลมใหญ่) การคำนวณระยะทางระหว่างจุดและเส้นเสมือนสอง lat / lngs จะประมาณระยะห่างระหว่างส่วนบนทรงกลมอย่างไร นอกจากนี้คำถามที่คล้ายกันมากซึ่งฉันไม่สามารถคำนวณหรือยืนยันได้อย่างถูกต้อง: ค้นหาจุดที่ใกล้ที่สุดในบรรทัด นอกจากนี้ยังมีข้อมูลบางส่วนจากดร. คณิตศาสตร์เกี่ยวกับเรื่องนั้น อย่างไรก็ตามฉันไม่สามารถหาอัลกอริทึมในการคำนวณตำแหน่งในขั้นตอนที่ 3 ได้เนื่องจากฉันไม่ได้แตะพีชคณิต (เวกเตอร์) สักพักฉันไม่เข้าใจตรรกะในคำตอบเหล่านั้น มีคนแสดงอัลกอริทึมให้ทำสิ่งนี้ได้ไหม วิธีการแก้ปัญหาในการเขียนโปรแกรมภาษาที่เหมาะสมจะดีกับฉัน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.