计算球面大圆地心角 (Degrees)
(lat1, lon1, lat2, lon2)
| 41 | |
| 42 | |
| 43 | def calc_central_angle(lat1, lon1, lat2, lon2): |
| 44 | """计算球面大圆地心角 (Degrees)""" |
| 45 | rad = math.pi / 180.0 |
| 46 | phi1, phi2 = lat1 * rad, lat2 * rad |
| 47 | dphi = (lat2 - lat1) * rad |
| 48 | dlam = (lon2 - lon1) * rad |
| 49 | a = math.sin(dphi / 2) ** 2 + math.cos(phi1) * math.cos(phi2) * math.sin(dlam / 2) ** 2 |
| 50 | c = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a)) |
| 51 | return c * 180.0 / math.pi |
| 52 | |
| 53 | |
| 54 | class OrbitalElements: |
no outgoing calls