เนื้อหา
การวัดระยะทางระหว่างจุดสองจุดบนพื้นผิวโค้งเช่นดาวเคราะห์โลกนั้นไม่ได้ง่ายเหมือนบนพื้นผิวเรียบ มีสูตรตรีโกณมิติหลายแบบที่ให้ผลลัพธ์นี้ แม่นยำที่สุดโดยเฉพาะอย่างยิ่งสำหรับระยะทางที่สั้นมากเป็นสูตรที่เรียกว่า Haversine
คำสั่ง
โลกดังที่แสดงในแบบจำลองโลก (ภาพโลกโดย Christopher Meder จาก Fotolia.com)-
แปลงละติจูดและลองจิจูดเป็นสองจุดที่เท่ากันในเรเดียน หากคุณเริ่มต้นด้วยบางสิ่งบางอย่างในหน่วยองศานาทีและวินาทีคุณต้องแปลงเป็นองศาทศนิยมก่อน - หารวินาทีด้วย 60, เพิ่มเป็นนาที, หารด้วย 60, เพิ่มเป็นองศา เรเดียนเทียบเท่ากับทศนิยมทศนิยม 57.2957795 ดังนั้นแบ่งผลลัพธ์เป็นองศาทศนิยม 57.2957795 เพื่อให้ได้ค่าเป็นเรเดียน ทำสิ่งนี้แยกกันด้วยละติจูดและลองจิจูดของโคลอนเพื่อรับตัวเลขทั้งหมดสี่ตัว
-
ลบจุดที่ 2 จากจุดที่ 1 - ลองจิจูดจากจุดที่ 2 ลดลองจิจูดจากจุดที่ 1 และละติจูดจากจุดที่ 2 ละติจูดที่น้อยกว่าจากจุดที่ 1 หรือมีขนาดกะทัดรัดกว่า: DLON = lon2 - lon1 และ DLAT = lat2 - lat1
-
คำนวณค่า cosines ของ lat1 และ lat2 โคไซน์เป็นฟังก์ชันตรีโกณมิติ
-
หาร DLAT ด้วย 2 คำนวณไซน์ของคุณ (ฟังก์ชันตรีโกณมิติอีกอัน) แล้วคูณผลลัพธ์ด้วยตัวเองเพื่อให้ได้สแควร์: (ไซน์ของ (DLAT / 2)) ² ทำซ้ำขั้นตอนนี้สำหรับ DLON ด้วย: (ไซน์ของ (DLON / 2)) ²
-
คูณโคไซน์ของ LAT1 ด้วยโคไซน์ของ LAT2 และ (ไซน์ (DLON / 2)) ² เพิ่ม (ไซน์ (DLAT / 2)) ²ไปยังผลลัพธ์ ให้เราเรียกค่านี้ว่า "a": a = cosine (LAT1) * cosine (LAT2) * (sine (DLON / 2)) ² + (sine (DLAT / 2)) ²
-
คำนวณระยะทางด้วยสูตรต่อไปนี้: distance = รัศมีของโลก * 2 * ส่วนโค้งสัมผัส ((รากที่สองของ "a" / รากที่สองของ (1 - "a")) ส่วนโค้งสัมผัสเป็นฟังก์ชันตรีโกณมิติอีกอันหนึ่ง รัศมีของโลกนั้นได้รับการยอมรับโดยทั่วไปว่าเป็น 6,367 กม. หรือ 3,956 ไมล์ทะเล