Tôi đang thiết lập một chương trình nhỏ để lấy 2 toạ độ địa lý từ người dùng và sau đó tính khoảng cách giữa chúng (tính đến độ cong của trái đất). Vì vậy, tôi tra cứu wikipedia về công thức là here.Cần trợ giúp tính khoảng cách địa lý
tôi về cơ bản thiết lập chức năng python của tôi dựa trên đó và đây là những gì tôi đã đưa ra:
def geocalc(start_lat, start_long, end_lat, end_long):
start_lat = math.radians(start_lat)
start_long = math.radians(start_long)
end_lat = math.radians(end_long)
end_long = math.radians(end_long)
d_lat = start_lat - end_lat
d_long = start_long - end_long
EARTH_R = 6372.8
c = math.atan((math.sqrt((math.cos(end_lat)*d_long)**2 +((math.cos(start_lat)*math.sin(end_lat)) - (math.sin(start_lat)*math.cos(end_lat)*math.cos(d_long)))**2))/((math.sin(start_lat)*math.sin(end_lat)) + (math.cos(start_lat)*math.cos(end_lat)*math.cos(d_long))))
return EARTH_R*c
Vấn đề là kết quả đi ra thực sự không chính xác. Tôi mới để python nên một số trợ giúp hoặc tư vấn sẽ được đánh giá rất nhiều!
Xin vui lòng cho một ví dụ cụ thể (đầu vào, đầu ra dự kiến, sản lượng thực tế). –
Tôi đã nhập các tọa độ này (-6.508, 55.071) và (-8.886, 51.622). Sản lượng dự kiến là 414Km. Kết quả thực tế là 6473Km – Darkphenom
Tôi muốn nói điều này là không chính xác, điều này là sai>.
hochl